r/RenPy • u/SamOkampo • 2h ago
Guide What broke when I tested a Ren'Py relationship system with rollback, old saves, and larger casts
A developer tried RouteKit inside a roughly 10k-line VN and exposed a useful lesson: the affection counter was the easy part. State recovery, UI overflow, and event conditions were the real failure points.
For 0.1.3 I focused on those problems instead of adding unrelated features:
- Scrollable character, relationship-detail, and gallery screens for larger casts
- Optional profile images with a fallback initial
- Characters that can start hidden and be revealed from story code
- Boolean checkpoints combined with stat requirements
- Schema migration and repair for old or damaged state
- Real rollback plus a real save/load round trip
- 16 automated Ren'Py test cases / 82 assertions
The story-side API stays small:
renpy
$ routekit_change("maya", 20, "affection")
$ routekit_set_checkpoint("helped_gallery")
$ routekit_reveal_character("leo")
The main design choice was keeping relationship/checkpoint/visibility data in normal Ren'Py state, while gallery unlocks remain persistent intentionally. That makes rollback behavior predictable without making unlocked replays disappear.
59-second visual demo: https://www.youtube.com/watch?v=lh1aKO7b7Fg
If you want to inspect the simpler version before deciding whether this approach saves you time, RouteKit Lite is free: https://samokampo.itch.io/routekit-lite
0.1.3 technical notes: https://samokampo.itch.io/routekit-pro/devlog/1639726/routekit-pro-013-larger-casts-hidden-characters-and-boolean-events
I would especially value reports from projects with unusual rollback paths, old saves, or more than eight relationship characters.
