Documentation / Declarative Structures — Experimental
PROPOSED API
API specification — not a released addon. SkCine-specific syntax shown here is proposed and must be implemented and server-tested before use.

Declarative Structures — Experimental

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.

SkCine's minimum viable scripting interface is imperative effects and expressions. A declarative section DSL is a desirable enhancement, not a prerequisite and not guaranteed to parse on every Skript release.

Aspirational scene structure

cine scene "story:arrival":
    duration: 8 seconds
    skippable: true

    camera:
        keyframe at 0 seconds:
            position: {_start}
        keyframe at 8 seconds:
            position: {_end}

    at 3 seconds:
        title: "<gold>The Journey Begins"

This is illustrative, not runnable. Standard local Skript variables such as {_start} generally require event/function execution context; a compile-time structure cannot safely rely on arbitrary local variables. A real implementation should instead allow constants/expressions with a proven parse/execution model or prefer imperative runtime construction.

Requirements before declaring structures supported

  • Register correct Structure or Section syntax via supported Skript APIs.
  • Validate nested child nodes and entries.
  • Define which expressions are parse-time constants and which are runtime.
  • Guarantee no invalid local-variable lookup at load time.
  • Test reload, re-registration and source ownership.
  • Provide version adapters when APIs differ.
  • Ensure the declarative path builds the same scene runtime model as imperative syntax.

Recommended baseline

command /demo:
    trigger:
        set {_scene} to new cine scene named "story:arrival"
        set cine duration of {_scene} to 8 seconds
        set {_camera} to new cine camera at location of player
        # Populate keyframes and cues with SkCine effects.
        set cine camera of {_scene} to {_camera}
        set {_playback} to play cine scene {_scene} for player
© 2026 DHeaven · SkCine documentation design · All scene authoring happens in Skript (.sk).