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

Widget bindings

bind on a content block maps to a registered player preference. Control kind comes from the engine registry — do not set type on bind blocks.

{ "bind": "master", "label": "Master", "label_key": "screen.settings.master_volume", "min": 0, "max": 1, "step": 0.05 }
{ "bind": "typing_enabled", "label": "Typing sound", "label_key": "screen.settings.typing_sound" }
{ "bind": "locale", "label": "Language", "label_key": "screen.settings.language", "style": "locale_button", "active_style": "locale_button_active" }

Omit label / label_key for a full-width control. With a label, the row uses settings_layout (label | control [| value]). Labels accept BBCode ([b], [color=…], …).

Usually you need

BindControlEffect
master / bgm / sfxsliderVolumes
fullscreentoggleDisplay mode
typing_enabledtoggleTyping beep
localelocale chipsLanguage from i18n.locales

All bindings

BindControlEffect
mastersliderMaster volume
bgmsliderMusic volume
sfxsliderSFX volume
typing_enabledtoggleTyping beep on/off
fullscreentoggleFullscreen
typing_speed_scaleslidertyping.speed_scale
auto_advance_defaultsliderAuto-advance default
font_size_scaleslidertypography.size_scale (+ commit)
localelocale chipsset_locale:<id> from game.i18n.locales

Free slider / toggle blocks (with type and hooks, no bind) are for custom UI — see Content blocks.

Slider/toggle chrome: slider · toggle. Layout: settings_layout. Content blocks · Typing.