JohnnyDEV-PublicGameSaves icon

PublicGameSaves

Host public games from your private saves - and they keep saving like normal. Host-only.

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-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

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

  1. Install BepInEx 5 (BepInExPack for R.E.P.O.) if you don't have it.
  2. Drop PublicGameSaves.dll into <game folder>\BepInEx\plugins\.
  3. Launch the game. The config file appears at BepInEx\config\com.nikola.publicgamesaves.cfg after 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).

  1. Put Plugin.cs and PublicGameSaves.csproj in a folder.
  2. Open PublicGameSaves.csproj and set <GameDir> to your R.E.P.O. install path if it isn't D:\Steam\steamapps\common\REPO.
  3. Open a terminal in that folder and run:
    dotnet build -c Release
    
  4. The DLL is at bin\Release\net472\PublicGameSaves.dll — and if BepInEx\plugins exists, 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.