You are viewing a potentially older version of this package. View all versions.
JohnnyDEV-PublicGameSaves-1.1.0 icon

PublicGameSaves

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

Date uploaded a week ago
Version 1.1.0
Download link JohnnyDEV-PublicGameSaves-1.1.0.zip
Downloads 883
Dependency string JohnnyDEV-PublicGameSaves-1.1.0

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.

CHANGELOG

Changelog

1.1.0

  • Fixed: server name input was skipped and starting a game required pressing New Game twice (page transitions raced the confirm popup's cleanup).
  • New flow: Create New -> type server name -> Confirm -> pick a save (or New Game) -> public server starts, named and listed.
  • Public game start now reuses the game's own host sequence directly, with the lobby type forced to Public.

1.0.0

  • Initial release.
  • Server List "Create New" now opens the save selection page: load an existing save or start a new one, then name your public server.
  • Public games you host are saved to disk exactly like private games (configurable).
  • Optional: matchmaking games you end up hosting are saved too (configurable).