Documentation / Custom Types & Object Lifetimes
PROPOSED API
API specification — not a released addon. SkCine-specific syntax shown here is proposed and must be implemented and server-tested before use.

Custom Types & Object Lifetimes

API status — PROPOSED, NOT IMPLEMENTED. SkCine is currently a design specification in this conversation; no built SkCine.jar or syntax registry was supplied. All SkCine-specific examples are intended API contracts, not verified runnable .sk. Do not advertise these as tested until each example passes a real Skript reload and runtime test.

Type Lifetime Mutable? Stores
cinescene Owned by source script until unload Build-time only Blueprint, tracks, cues
cineinstance One playback Runtime state Clock, audience, instance variables
cinecamera Definition or scoped rig Build-time and controlled runtime Mode, path, focus
cinekeyframe Parent track Construction time Timestamp, value, easing
cinetimeline Scene definition Construction time Tracks, cue ordering
cinetrack Timeline Construction time Typed evaluated items
cineactor Instance/scene Explicit ownership Entity handle, path, visibility
cinedisplay Instance or wrapper Explicit ownership Display transform
cinedisplaygroup Parent scene Build-time Child transform references
cineemitter Definition/instance Configurable Shape and budgets
cinechoice Dialogue event Scoped to choice ID, label, timeout
cineaudience Instance Dynamic policy Set of viewers
cineeffect Registry Immutable Named preset

Persistence

Skript global variables can outlive a script reload, but live Java handles are not reliable persistent save values. Prefer persistent string IDs and primitives; reconstruct scene definitions from .sk scripts. The addon should warn or refuse invalid serialization of a cineinstance.

Ownership examples

# Definition — reused by multiple viewers
set {_scene} to cine scene named "demo:welcome"

# Instance — unique runtime control handle
set {_playback} to play cine scene {_scene} for player

# Stop this specific playback
stop cine scene {_playback}

Implementation acceptance

Every custom type must define parser registration, expression type metadata, display string, equality/identity, safe invalidation and serialization policy. Never assume Skript will serialize arbitrary Kotlin instance objects safely.

© 2026 DHeaven · SkCine documentation design · All scene authoring happens in Skript (.sk).