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.
模組介紹 作者原文
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
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。
下面這些內容需要先安裝,否則該模組不會生效: