Theme and the dialogue box
Lives in: themes/default.json
Fonts, colours, and shared chrome for the whole game. The dialogue box (presets, routing, height, scroll) lives in its own part of the handbook:
→ What a panel is · How a panel looks
Where the theme lives
| Piece | In themes/default.json |
|---|---|
| Fonts and sizes | typography |
| Fallback text / empty-stage colours | colors |
| Dialogue box presets | panel.<name> — How a panel looks |
| Name-plate styles | labelplate.<name> — Name plate |
| Scrollbars | scrollbar (menus and panel body) |
| Menu / screen buttons | buttons — Buttons and actions |
Put font files under fonts/. Locale overlays can sit beside the base theme as default_<locale>.json. Pack files for choices and inputs are separate stems under themes/ — Choice and input looks.
"extends" on a panel preset merges keys — Reusing settings.
Fonts and sizes
"typography": {
"font": "Jupiteroid",
"font_menu": null,
"font_dialogue": null,
"font_label": "Jupiteroid",
"size_scale": 1.0,
"sizes": {
"speaker": 45,
"dialogue": 30,
"choice": 30,
"button": 30,
"notification": 30
}
}
| Key | Effect |
|---|---|
font | Base face under fonts/ (variants like Regular / Bold when present) |
font_dialogue | Dialogue + choices (null → font) |
font_label | Speaker name plate |
font_menu | Menus / settings buttons (null → font) |
sizes.* | Pixel sizes for speaker, dialogue, choice, button, notification |
size_scale | Multiplies all sizes.* (player text-size setting builds on this) |
Change sizes.dialogue or font, reload (F5 / F6 for look), and play a line.
Colours
"colors": {
"background_default": "#dfdcd7",
"speaker_text": "#c4693a",
"dialogue_text": "#e8e5e0",
"choice_text": "#c5cad5",
"notification_text": "#dfdcd7"
}
| Key | Effect |
|---|---|
dialogue_text | Body text fallback |
speaker_text | Name-plate text fallback |
choice_text | Choice caption fallback |
background_default | Fill when no background picture is up |
notification_text | Toast / some heading fallbacks |
Panel plate colour is usually panel.<preset>.bg, not colors — How a panel looks.
Full map
Every allowed key in one view: themes/default.json file map. Panel, buttons, and choice/input packs: Theme detail.
Mood for one stretch of story
A mood profile is another theme file (for example themes/flashback.json) that merges over default.json for a while:
{ "type": "theme_style", "profile": "flashback" }
{ "type": "theme_style", "reset": true }
Sticky until you reset or start a new game. It does not switch choice packs — use a choice style command / pack for that — Choice and input looks.
Until you add a mood file, a second panel preset or a sticky panel command is enough for a quieter box.
Usually you need
| Want | Do |
|---|---|
| Bigger dialogue text | Raise typography.sizes.dialogue |
| Warm name colour | colors.speaker_text or a labelplate style |
| Dimmer plate | panel.default.bg |
| Whole scene mood | theme_style profile file |