Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
PublicGameSaves
Host public games from your private saves - and they keep saving like normal. Host-only.
By JohnnyDEV
| Last updated | 5 hours ago |
| Total downloads | 47 |
| Total rating | 1 |
| Categories | Client-side AI Generated |
| Dependency string | JohnnyDEV-PublicGameSaves-1.1.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
PublicGameSaves
A R.E.P.O. mod that lets you host public games from your saved games — and keeps saving them, exactly like private games.
- Server List → Create New → type your server name → Confirm now opens the save selection screen: pick a save and press Load Game to continue it publicly, or press New Game for a fresh run.
- Progress in public games you host is saved to disk just like in private games (when you leave from the truck, between levels, etc.), so you can keep the run going next session — publicly or privately.
- Optionally, random matchmaking games you end up hosting are saved too (configurable).
- Host-only mod. People joining your server don't need it. Clients never write save files (vanilla already protects this).
How it works
After you confirm the server name, the mod opens the vanilla save selection page. Picking a save runs the game's own "host an open online game" sequence (SemiFunc.MenuActionRandomMatchmaking) with your save file attached, then sets the lobby type to Public and applies your server name — the exact same state the vanilla Create New flow produces, so the server is named, listed, and joinable like any other public server.
Saving was blocked by a single check: StatsManager.savedLobbyTypes only contained Private, so SaveFileSave skipped writing the file in public lobbies. The mod adds Public (and optionally Matchmaking) to that list. Everything else — save timing, backups, save-on-leave — is untouched vanilla behavior.
Install
- Install BepInEx 5 (BepInExPack for R.E.P.O.) if you don't have it.
- Drop
PublicGameSaves.dllinto<game folder>\BepInEx\plugins\. - Launch the game. The config file appears at
BepInEx\config\com.nikola.publicgamesaves.cfgafter first run.
Config
| Setting | Default | Description |
|---|---|---|
SavePublicGames |
true |
Save progress in public (server list) games you host |
SaveMatchmakingGames |
true |
Save progress when you end up hosting a random matchmaking game |
Building from source
Requirements: .NET SDK (8.0 or newer is fine).
- Put
Plugin.csandPublicGameSaves.csprojin a folder. - Open
PublicGameSaves.csprojand set<GameDir>to your R.E.P.O. install path if it isn'tD:\Steam\steamapps\common\REPO. - Open a terminal in that folder and run:
dotnet build -c Release - The DLL is at
bin\Release\net472\PublicGameSaves.dll— and ifBepInEx\pluginsexists, the build copies it there automatically.
Visual Studio works too: open the .csproj directly (or add it to a solution) and press Build.
When the game updates and something breaks, rebuild against the new Assembly-CSharp.dll — the compiler and the BepInEx log will point at whatever changed.
Compatibility notes
- Patches:
StatsManager.Awake,MenuPageServerListCreateNew.ButtonConfirm,MenuPageSaves.OnLoadGame/OnNewGame/OnGoBack/UpdateGameModeHeader,MenuPageMain.Start(all prefix/postfix, no transpilers, no IL edits — update-friendly). - Random matchmaking is untouched UI-wise (no save picker there), because you can't know in advance whether you'll host or join someone else's room.