In this update9
Full notes
Full Usurper Reborn update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- Fixes
- Events
- Performance
Usurper Reborn changes
This is a quick follow-up from the .17 patch solely focused on single player save file updates.
Usurper Reborn v0.57.18 - Single-Player Save Reliability
Critical reliability pass on the single-player save system. Several Steam players reported saves bloating to huge sizes, vanishing from the load menu without warning, or refusing to load at all. This release tracks down the root causes and adds a recovery path for affected players.
If your save vanished from the load menu
Just launch v0.57.18, go to Load Game, and your character should reappear. The slot will be tagged [RECOVERY] (yellow) or [EMERGENCY SAVE] (red). Click it to open the recovery menu, pick the most recent backup or autosave, and the game will restore it as your primary save. The new bloat caps run automatically on the next save and shrink the file back to a reasonable size for future loads.
What was going wrong
Symptom 1: Saves disappeared from the load menu
A single bloated or corrupted save file would silently vanish from the character list. If all of your saves were affected, the menu showed empty and routed you straight to character creation, making it look like your characters had been deleted. The files were always still on disk - the load menu just refused to display them.
Fixed: Every save on disk is now visible in the load menu, even ones that fail to deserialize. They show up tagged [RECOVERY] so you can tell at a glance which slots need attention. Emergency save files (from Ctrl+C dumps) also surface as [EMERGENCY SAVE] entries when no normal save exists for that character.
Symptom 2: "Saves run out of memory after I quit"
Several per-NPC fields had no upper bound and grew without limit across long playthroughs. With 130 NPCs each leaking a few KB per session, single-player saves could balloon to 50+ MB after a long run. The next load would then fail with an out-of-memory error, and the save would appear to have "vanished" via Symptom 1.
Fixed: Strict caps applied at save time across nine bloat surfaces:
NPC dialogue history (every conversation line ever delivered)
NPC relationships and impressions
NPC social graph (known characters)
NPC enemy and grudge lists
Royal Court prisoners, orphans, monarch history
Royal Court members, heirs, and monster guards
Per-companion inventory (combat loot pile-up)
Romance encounter history
Stranger encounter dialogue and event tracking
NPC conversation states and topics discussed
Affair registry entries
In-memory state is unchanged. NPCs still know about every interaction during your session. Only what survives the save and reload boundary is trimmed. Existing bloated saves heal themselves automatically on the next save.
Symptom 3: Cascading failures during the load sequence
The load failure recovery menu (added in v0.57.14) was already comprehensive and showed your backup, the last 3 autosaves, and any emergency saves. The problem was that Symptoms 1 and 2 hid the corrupted slot entirely so players never reached the recovery menu.
Fixed: With the listing fixes above, every save is now visible. Clicking a known-bad slot now jumps straight to the recovery menu instead of trying and failing to load it first.
Write-path hardening
The audit also turned up three ways the save file itself could become corrupted on disk:
Torn files on crash mid-write. If the game process died (Ctrl+C, OS crash, power loss) partway through writing a save, the file was left half-written and unloadable. Now: saves are written to a temporary file first, flushed to disk, then atomically renamed into place. A crash mid-write leaves an orphan temp file (cleaned up on the next save) but your primary save stays intact.
Concurrent saves stomping each other. Two save operations to the same file could overlap and corrupt each other. Now: a single-writer lock guarantees one save at a time.
Out-of-memory during serialization. When the save was already bloated, serialization could fail mid-stream, leaving a half-written file. Now: saves are serialized fully into memory first. If that fails, the primary file is never touched and the previous good save is still loadable.
Emergency save improvements
When you press Ctrl+C, the game tries to write an emergency save. Before this version, every Ctrl+C overwrote the same single file - so:
Different characters clobbered each other's emergency saves
Repeated Ctrl+Cs during one session all overwrote the same slot
The recovery menu couldn't tell which character the emergency belonged to
Fixed: Emergency saves are now named per-character and per-timestamp. A new auto-rotation keeps the 3 most recent emergency dumps for each character. The on-screen message also names your character so you know exactly what to look for in the load menu.
Local debug logging
Every save now writes its file size to the local debug log on your machine, with a loud warning entry when a save crosses 5 MB. This is purely a local file (saved to logs/debug.log in your install directory) and is never transmitted anywhere - the game does not contain any external telemetry or analytics (that was removed back in v0.52.12). The log is only useful if you choose to attach it to a bug report so we can see when a save started growing.
Defense-in-depth
The NPC restore loop is now wrapped in per-NPC error handling. If one NPC entry is corrupted, it gets logged and skipped instead of aborting the whole restore. Your world loses one NPC, not all 130.
Explicit JSON depth limit raised from 64 to 256, defending against future deeply-nested data structures.
As always, please report any issues with these changes via the in-game [!] Bug Report option or in our Discord. Thanks for playing.
Source
Changelog.gg summarizes and formats this update. How we read updates.
