panel
Controls dialogue panel instance look, visibility, content mode, and presence policy.
{ "type": "panel", "preset": "whisper", "panel_id": "main", "apply": "persistent" }
[panel whisper]
[panel reset]
[panel clear_append]
[panel panel_id phone clear_append]
Usually you need
| Field | Type | Default | Effect |
|---|---|---|---|
preset | string | — | Theme preset name |
panel_id | string | "main" | Panel instance |
text_mode / clear_append / plate | — | — | Append or plates mode, wipe history, or sticky plate name |
show | bool | — | Visibility (true on an off-route panel sticks against policy hide until cleared) |
apply | "persistent" | "node_local" | "persistent" | Scope |
All fields
| Field | Type | Default | Effect |
|---|---|---|---|
panel_id | string | "main" | Instance |
preset | string | — | Layout preset |
show | bool | — | Visibility. Off-route true sticks against policy hide until show: false, reset, or policy_reset |
apply | "persistent" | "node_local" | "persistent" | Scope |
reset | bool | — | Reset panel (clears sticky max_height, append state, policy, shaders) |
transition / transition_in / transition_out | kind | per contract | Show/hide |
transition_duration / duration | number ≥ 0 | — | Seconds |
text_mode | "replace" | "append" | "plates" | "replace" | Content mode |
clear_append | bool | — | Wipe append/plates history only (keeps text_mode, direction, preset, policy) |
append_direction | "down" | "up" | "down" | Append / plates direction |
append_gap_lines / append_gap_px | ≥ 0 | 0 | Gaps (append_gap_lines ignored in plates) |
plate | string or null | — | Sticky plate name for text_mode plates (null / clear clears) |
max_height | number, "NN%", or "full" | theme / legacy | Sticky height ceiling for this panel |
z | number | 0 | Draw order |
mode | "adv" | — | Panel mode |
shader | object or null | omit = keep | Panel shader |
presence_mode | "talk_only" | "visible_with_char" | "always_visible" | "talk_only" | Persistent policy |
non_talking_mode | "hide" | "readonly_last_text" | "hide" | |
readonly_style_key | string | — | Readonly style |
policy_reset | bool | — | Clear policy to defaults |
linked_char_id | string | — | Explicit character link |
bind | object | — | Flag binds |
interaction | object | — | Hooks |
when | expression | — | Skip when falsy |
Node panel_* fields are one render cycle; this command is sticky unless node_local. Same-node text_mode / preset / append_* / clear_append also apply to that node’s first paint (explicit node fields win). Sticky text_mode: replace, clear_append, or reset clears that panel’s append history; a node-only text_mode: replace does not. Presets: Theme: panel. Routing: Panel routing.