Screen object
One entry in screens.json (plus optional top-level defaults).
{
"title": {
"role": "modal",
"layers": [
{ "type": "background", "style": { "bg_color": "#101018" } },
{ "type": "menu", "buttons": [{ "label": "Start", "interaction": { "hooks": { "on_click": "start" } } }] }
]
}
}
Usually you need
| Key | Type | Default | Effect |
|---|---|---|---|
layers | array | — | Required. Ordered layers |
role | "modal" | "hud" | "scene" | "modal" | Plane / input |
defaults (file root) | object | — | Shared transition / etc. |
All keys
| Key | Type | Default | Effect |
|---|---|---|---|
layers | array | — | Layers |
role | enum | "modal" | Plane policy |
shader | shader object | — | Screen shader |
transition / transition_in / transition_out / transition_duration / duration | — | instant / 0 | Enter/exit |
pauses_tree | bool | — | Pause game tree |
action_context | string | — | Hook allowlist context |
interaction | object | — | Screen-level hooks |
modulate / scale | hex / number or array | — | Tint / scale |
plane / persistent / input_passthrough | advanced | — | Plane overrides |
Layers: background · sprites · content · menu · chrome. Guide: Screens. Story control: screen.