Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Choice and input looks

Lives in: themes/<pack>.json, plus layout / story fields

How choice buttons and the name-entry field look. Story choices and input flow: Choices and memory. Layout defaults: Choice and character layout.

Choice packs

A pack is a JSON file under themes/. The name is the file stem: "style": "choice_button" → themes/choice_button.json.

Two common roles:

RoleHow you point at itWhat’s inside
Button looklayout.choices.style, node choices.style, or sticky choice_styleTextures / flat colours / fonts for stacked text buttons
Group composechoices.source / container.source / item.sourceLayout + item chrome for free / sprite / overlay menus

"style" / "source" merge rules: Reusing settings. Locale overlays: themes/<name>_<locale>.json.

Button pack (usual ADV)

{
  "min_width": 220,
  "padding_left": 18,
  "padding_right": 18,
  "padding_top": 4,
  "padding_bottom": 6,
  "normal_texture": "sprites/button-normal.png",
  "hover_texture": "sprites/button-hover.png",
  "pressed_texture": "sprites/button-down.png",
  "texture_9slice": [6, 6, 6, 6],
  "font_color": "#3a2a1a",
  "font_hover_color": "#6b4420"
}

Flat colour keys (normal_bg, borders, …) work when textures are omitted or empty. Optional click_sfx / hover_sfx override default UI sounds for button choices.

Choice packs do not restyle screen/menu buttons (those use theme buttons) or the dialogue panel plate.

Sticky choice look

{ "type": "choice_style", "style": "choice_plain" }

Stays until you change it. Separate from theme_style mood profiles — Theme and the dialogue box.

Text input packs

Optional pack for story name-entry / text fields. No pack required — omit style and the field uses dialogue colours and flat fills.

PieceKeys (examples)
Fieldfield_font_color, field_normal_bg / textures, padding, nine-slice
Confirm buttonSame family as choice/nav packs (normal_texture, font_color, …)

Precedence: moment input.style → sticky input_style → layout.text_input.style → defaults.

theme_style does not restyle input chrome (same rule as choice packs).

Usually you need

WantDo
Default stacked choices"style": "choice_plain" (or your pack) in layout.choices
Different look this sceneSticky choice_style or node choices.style
Custom name fieldA text-input pack + layout.text_input.style

Next

Free choices · Title, pause and settings screens · Choice packs · Text input packs