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.
LateRepo Fix
Compatibility patch for LateRepo 1.6.4: fixes the outdated singleplayerPool error, active-round lobby access, enemy late-join state, early client module link repair, targeted module replay, and late-join battery charge UI sync.
| Date uploaded | a day ago |
| Version | 1.1.4 |
| Download link | AST_Studios-LateRepo_Fix-1.1.4.zip |
| Downloads | 1375 |
| Dependency string | AST_Studios-LateRepo_Fix-1.1.4 |
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.2305Chaosholz-LateRepo
Adds LateJoin to R.E.P.O. and includes several quality-of-life features.
Preferred version: 1.6.4README
LateRepo Fix
Compatibility patch for LateRepo 1.6.4.
It prevents the repeated RunManager.singleplayerPool MissingFieldException that can appear when LateRepo wraps LevelGenerator.Start together with older mods that still expect that removed game field.
It also adds host-side options that keep the Steam lobby and Photon room joinable during an active round, so players can connect while the host is already inside a level instead of only joining in the shop/truck.
The Steam lobby is only unlocked when the game or LateRepo tries to lock it or when the level changes. The periodic refresh only keeps the Photon room open, so it does not spam Steam: Unlocking lobby....
The patch also synchronizes enemy player-state dictionaries for late joiners, preventing missing-key errors in EnemyOnScreen and EnemyVision when a player connects after enemies already exist.
It repairs client module connection state before room blockers and connection objects are generated, then keeps a targeted host replay as a backup after the late joiner's player avatar exists. This prevents early missed room-link RPCs from leaving connected rooms blocked by phantom walls after an active-round join or reconnect.
It sends the current vanilla ItemBattery charge state to newly joined clients and resyncs it after level item setup. It also repairs stale inventory battery counters on clients, keeping charge bars correct for Phase Bridge, staff weapons, Defibro, drones, and other battery-style items without replaying equipped item state globally.
Config
The config file is created at BepInEx/config/laterepo.fix.runtime.cfg after launching the game once.
General.DebugLogging: enables extra logs for this fix. Default:false.Host.AllowJoiningDuringActiveRound: keeps the host lobby joinable during active runs. Default:true.Host.KeepPhotonRoomOpenDuringActiveRound: keeps the Photon room open and visible while active round joining is enabled. Default:true.Level.SyncModuleConnectionsForLateJoiners: repairs module connection state before client block generation and replays the host state directly to active-round late joiners. Default:true.Items.SyncItemBatteryStateForLateJoiners: sends current item charge state to newly joined clients. Default:true.Items.RepairInventoryBatteryUiForLateJoiners: repairs stale vanilla inventory battery UI counters on clients. Default:true.
Install
Install this alongside LateRepo.
For multiplayer, install it on the host and every client.
Support
CHANGELOG
Changelog
1.1.4
- Added an early client-side module connection prepass before
GenerateConnectObjectsandGenerateBlockObjects. - Fixes active-round reconnects where the client could generate phantom walls before receiving the host's room-link replay.
- Applies incoming
ModuleConnectionSetRPCidempotently on clients, preventing duplicate module-ready counts and duplicate prop-switch setup. - Keeps the targeted host module replay from 1.1.3 as a backup for late-loaded module PhotonViews.
- Helps prevent late-joined or reconnected players from spawning inside disconnected room blockers after a crash.
1.1.3
- Added targeted vanilla
ItemBatterystate sync for newly joined clients. - Fixed missing charge bars for vanilla charged items such as Phase Bridge and staff weapons after joining an active round.
- Also resyncs item battery charge after level item setup, covering clients who joined before the round but loaded items with stale charge UI.
- Added an inventory UI fallback that repairs stale private
ItemBatterybar counters when vanilla returns an empty charge state. - Extended targeted late-join battery sync retries so active-round joiners can receive charge state after their item PhotonViews finish loading.
- Sends current battery state only to the newly joined player, avoiding the old global item state replay that broke charge UI.
- Stores module connection state on the host and replays it directly to late joiners after their player avatar is ready, avoiding early
ModuleConnectionSetRPCmisses that could create disconnected/phantom walls. - Skips direct
ItemBatteryRPC sync for nested batteries whose PhotonView cannot receive vanilla battery RPC methods, preventingBatteryToggleRPC/BatteryFullPercentChangeRPCconsole errors. - Added
Items.SyncItemBatteryStateForLateJoinersconfig. - Added
Items.RepairInventoryBatteryUiForLateJoinersconfig.
1.1.2
- Removed the experimental equipped item state replay and
ItemEquippable.RPC_UpdateItemStateguard because they could break charge bars on battery-style items and Defibro. - Removed
Items.RepairItemEquipStateRpcandItems.SyncEquippedItemsForLateJoinersconfig. - Replaced late module connection replay with buffered
ModuleConnectionSetRPCduring generation, so active-round joiners receive room links through the same Photon cache path as vanilla level state. - Removed late-join item battery state replay.
LateRepo Fixno longer sendsBatteryFullPercentChangeRPC, leaving charge bars to vanillaItemBatteryand item-specific fixes. - Updated
Level.SyncModuleConnectionsForLateJoinersto control buffered module connection sync.
1.1.1
- Stopped the periodic Steam lobby unlock call that caused constant
Steam: Unlocking lobby...console spam. - Kept the periodic Photon room open/visible refresh for active-round joining.
- Added late-join enemy state synchronization to prevent missing player dictionary keys in
EnemyOnScreenandEnemyVision. - Keeps the host Photon room open and visible while active round joining is enabled.
- Added
Host.KeepPhotonRoomOpenDuringActiveRoundconfig. - Added periodic host access refresh during active runs.
1.1.0
- Added
Host.AllowJoiningDuringActiveRoundconfig. - Keeps the host Steam lobby joinable while active round joining is enabled.
- Preserves public/private lobby visibility while allowing joins.
1.0.0
- Added a guard around LateRepo's
LevelGenerator.Starthook. - Added a finalizer on
LevelGenerator.Startso the guard still works after runtime hooks are installed. - Suppressed the outdated
RunManager.singleplayerPoolMissingFieldException. - Added
General.DebugLoggingconfig.