Choice and character layout
Lives in: game.json → layout
Project defaults for choice menus, name entry, and where characters stand. A story moment can override these for one scene; this file sets the usual look.
Choice menus
"layout": {
"choices": {
"show_numbers": true,
"shuffle": false,
"gap": 10,
"style": "choice_button"
}
}
| Key | Effect |
|---|---|
show_numbers | Prefix choices with 1., 2., … |
shuffle | Mix the order (still stable for a given play) |
gap | Space between stacked choices |
style | Button look pack under themes/ |
container and item hold where the menu sits and per-button defaults — shapes shared with other UI: Shared shapes. Visual packs: Choice and input looks. Writing the options themselves stays in the script — Choices and memory.
Name entry
"layout": {
"text_input": {
"style": "input_default",
"confirm": { "label": "OK" }
}
}
Defaults for [input …] moments. Field placement and chrome use the same container shapes as choices.
Character places
"layout": {
"characters": {
"mode": "adaptive",
"adaptive": {
"slot_count": 3,
"slot_width": 400,
"slot_height": 720
}
}
}
| Mode | Meaning |
|---|---|
adaptive | Even row of places (left / center / right by default) |
explicit | You name each place with your own positions |
Script stage directions like [hana left] use those place names. Full explanation: Planes and slots · Places on stage.
Usually you need
| Want | Write |
|---|---|
| Numbered choices | "choices": { "show_numbers": true } |
| Wider choice buttons | "choices": { "item": { "layout": { "width": 480 } } } |
| Three standing places | "characters": { "mode": "adaptive", "adaptive": { "slot_count": 3 } } |
Full key list: game.json map.
Next
When a line of script is not enough: When the script is not enough. Or jump to The stage for pictures and music in scenes.