Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Objects (*.obj.json)

Catalog definition under sprites/<id>.obj.json. Instances use the obj command.

{
  "id": "lamp_widget",
  "layer": "overlay",
  "parts": [
    { "id": "bg", "kind": "rect", "width": 40, "height": 283, "color": "#343a52e0" },
    {
      "id": "ptr",
      "kind": "polygon",
      "points": [[20, 0], [0, 13], [20, 26]],
      "bind": { "y": { "flag": "score", "map": { "5": 23 }, "default": 23 } }
    }
  ]
}

Usually you need

KeyTypeEffect
idstringRequired definition id
partsarrayRequired parts
layerstringDefault plane (overlay, …)

Root keys

KeyTypeEffect
idstringDefinition id
partsarrayPart list
layerstringDefault draw layer
transition / transition_in / transition_outkindDefault show/hide
duration / transition_durationnumberSeconds
modulatecolorRoot tint
scalenumber or [sx,sy]Root scale
rotation_degreesnumberRoot rotation

Parts

Kinds: image | rect | polygon | text.

Meters and HUD gadgets in the root demo are mostly rect + polygon (and bind) — you do not need sprite art for a score lamp. Use image when you have a PNG face.

Shared

KeyTypeEffect
idstringPart id (for update)
kindenumShape
x / y / width / height / ordernumberGeometry / draw order
points[[x,y],…]Polygon
color / opacity / visible—Look
path / value / image fields—Image source
frames / fps / loop / intervals—Flipbook
bindobjectFlag → property — Binds

Text parts

KeyTypeEffect
textstringCaption
bbcode_enabledboolRich text
font_sizenumberSize
align_hstringAlign
autowrapboolWrap

No shader / sfx patch on text parts.

Sprites and objects · obj · Transitions.