


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.
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 this alongside LateRepo.
For multiplayer, install it on the host and every client.