Skip to content

Tutorial Quality of Life Knobs

johnjohto edited this page Jul 26, 2026 · 4 revisions

Tutorial: Quality-of-Life Knobs

QoL features follow one pattern: a project knob in presentation/version.json, off by absence, refusing loudly on a non-boolean value. The faithful build keeps its exact 1998 manners because it simply doesn't write the knob.

{
 "running_shoes": true,
 "autosave": true,
 "settings_menu": true
}

running_shoes

Hold B while walking to run at bicycle pace. The run borrows the bicycle's exact movement timing — it never applies while surfing and never compounds with the bike, so overworld timing rules hold by reuse rather than by new code.

autosave

The engine writes an automatic sibling of the active save slot on map-change completion and on badge beats. CONTINUE resumes whichever of manual/auto is newest; the title screen semantics are otherwise untouched. Every project already saves to its own slot, and the autosave inherits that isolation — no project can clobber another's saves.

settings_menu

Seats a SETTINGS row in the start menu (before EXIT) opening the engine's settings screen: master/music/SFX volume, mute, and the display filter. The screen is always reachable with F9 in windowed play regardless of the knob — the knob exists so controller players get an in-game path. Settings are the player's, stored on their machine (audio.cfg / display.cfg in the user-data folder), never in your project — and the classic OPTIONS menu is untouched either way.

save_slots

An integer, 1–9: "save_slots": 3 gives players three characters. CONTINUE and NEW GAME route through a slot picker showing each save's name, badges, and play time, with confirmed delete and overwrite. Slot 1 is the existing save file untouched — turning the knob on never migrates anything — and every slot keeps its own autosave. Left absent, the title flow is exactly the classic single-save one.

Capacity knobs: bag_size · stack_size · pc_boxes · box_size

Bounded integers (bag 1–50, stacks 1–99, boxes 1–12 × 1–60): resize the bag, the item stacks, and the PC. With more than one box the PC gains a box picker with per-box fill counts; old saves become box 1 without migration. Left absent, everything is the classic 20/99/one-box-of-20.

shared_storage

One PC for the whole project: every character (see save_slots) deposits into and withdraws from the same boxes, stored beside the saves and committed the moment a mon moves — a new character starts with the household PC intact. Items stay per-character.

The refusal rule

"running_shoes": "yes" (or any non-boolean) refuses at boot naming the knob. Knobs are booleans, not strings, so a typo can't silently half-enable a feature.

More QoL options land under this same pattern release by release — check this page's neighbors and the changelog for the current set.

Clone this wiki locally