Places a free prop (image, rect, or polygon) on a stage layer. JSON / Mode B only (no script sugar).
{
"type": "sprite",
"id": "chair",
"value": "chair",
"layer": "bg_front",
"x": 625,
"y": 494
}
| Field | Type | Default | Effect |
id | string | — | Named sprite |
value | string or null | — | Asset name; null hides |
layer | "bg_front" | "fg" | "overlay" | "overlay" | Draw band |
x / y | number | — | Position |
| Field | Type | Default | Effect |
id | string | — | Named id |
layer | enum | "overlay" | Plane band |
kind | "image" | "rect" | "polygon" | "model" | "image" | Shape (model is in development) |
value | string or null | — | Asset / hide |
x / y / width / height / order | number | — | Geometry |
offset | number or array | — | Additive px |
rotation_degrees | number | — | Angle |
color / corner_radius / points | … | — | Primitives |
opacity | 0–1 | 1.0 | Alpha |
modulate / scale | color / number or [sx,sy] | — | Tint / scale |
transition / transition_in / transition_out | kind | "instant" | Show/hide |
transition_duration / duration | number ≥ 0 | 0 (fade often 0.5 in comments) | Seconds |
sfx | string | — | Loop until hide |
shader | object or null | — | Shader; uniforms go in the object’s params (a top-level shader_params is not a sprite field) |
bind / interaction / state_visual / layout | object | — | Live / hooks / states / host |
clear | layer name or "all" | — | Clear sprites |
when | expression | — | Skip when falsy |
Sprites and objects · Planes · Binds.