Softcore Mode
Softcore — Hardcore with backups. A new game mode that lets you experience the thrill of being punished on death, without needing to start everything from zero.
About this mod Author’s original text
Outward Softcore Mode
Softcore — Hardcore with backups. A new game mode that lets you experience the thrill of being punished on death, without needing to start everything from zero.
Softcore Mode was made for sessions where you're sprawled on the couch with a friend, drinks in hand, arguing about who forgot to check the map while one of you is getting mauled by a Shell Horror. You still want that jolt of panic on defeat — the "oh no, is this it?" moment — but you also have maybe three hours a week to play, and the thought of redoing all that progress is what kills the fun. This mode keeps the tension and the blame-game ("you were supposed to save the backup!") without demanding you start from scratch. Play risky, laugh about it, load your save.
Dependencies
- BepInEx-BepInExPack_Outward (5.4.19)
- sinai-dev-SideLoader (3.8.4)
- GymMed-Mods_Communicator (1.2.0)
Features
Permanent Death Roll — when a softcore character is defeated, a configurable percentage (default 20%) decides if they die permanently or respawn normally. Replaces the vanilla hardcore 20% roll with your own configurable rate.
Each defeat triggers a random roll against the DeathChance config value. If the roll hits, the character dies permanently — all local saves are deleted and the vanilla hardcore death screens play (loading screen, death context, return to main menu). If the roll misses, the character respawns through the normal defeat scenario.
The permanent death counter increments with each death. In split-screen, a single roll determines death for all softcore characters.
Game mode selection dialog — Normal, Softcore, and Hardcore options
Softcore mode disclaimer warning before character creation
Technical Details
- Patch target: Harmony Prefix on DefeatScenariosManager.ActivateDefeatScenario
- Softcore detection: Per-character IsSoftcoreCharacter(uid) check (reads metadata XML). This correctly handles split-screen where both players are softcore.
- Death path: A single configurable roll decides all softcore characters' fate. If the roll hits, every softcore character at 0 HP has its permanent death count incremented. The Prefix then calls the vanilla DefeatHardcoreDeath() method via AccessTools.Method reflection, reusing the entire vanilla death UI sequence (loading screen → hardcore death context screens → return to main menu). The Prefix returns false to skip the original method. The vanilla 20% hardcore roll inside the original method never executes.
- Survival path: When the roll misses but softcore characters are at 0 HP, the Prefix sets _scenario.SupportHardcore = false before letting the original method run. This causes the vanilla 20% hardcore check on line 204 of DefeatScenariosManager to short-circuit, guaranteeing survival. The original value is saved and restored in the Postfix.
- Death count storage: BepInEx/config/gymmed.Mods_Communicator/Softcore_Mode/Characters/{UID}.xml — stores PermanentDeathCount element incremented on each death.
- Config: DeathChance (int, 20-100, default 20) in gymmed.softcore_mode.cfg.
Save Backup Button — a purple "Save Backup" button in the pause menu creates full snapshots of your save file on demand, letting you manually preserve progress before risky encounters.
The button appears alongside the normal Save button for softcore characters. Clicking it triggers a save followed by a full copy of the save instance directory to a protected backup folder. A configurable cooldown (default 24 in-game hours) prevents spam — the button displays the remaining time when inactive. Oldest backups are automatically pruned when the configurable limit (default 10) is exceeded.
Save Backup button in the pause menu, colored purple
Save Backup button showing the cooldown timer
Technical Details
- Button injection: Harmony Postfix on PauseMenu.Show — clones the btnSave GameObject from m_hideOnPauseButtons, renames it btnSaveSoftcore, destroys UILocalize components, sets text color to purple (#A855F7), and register
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: