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.
LateJoinFix
Comprehensive community patch for R.E.P.O. mid-game joining. Fixes infinite black screens, missing dungeon rooms, solid wall desyncs, dead dummy models, and shop glitches.
By Scorpio
| Last updated | 2 hours ago |
| Total downloads | 31 |
| Total rating | 0 |
| Categories | Mods Server-side AI Generated |
| Dependency string | Scorpio-LateJoinFix-1.0.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
LateJoinFix (v1.0.0) — Community Patch for R.E.P.O.
A comprehensive, stable, and tested community patch for mid-game joining in R.E.P.O.
Allows friends to connect directly into your active game session at any time (during levels, truck phase, or in the shop) without game-breaking bugs, crashes, or black screens!
[!NOTE] Автоматический префикс открытых комнат:
[Late Join (Fix)]
(Scroll down for English version ↓)
🇷🇺 Русская версия
💡 О моде
Оригинальная система позднего подключения в игре страдала от критических багов десинхронизации: заходящие игроки застревали на вечном чёрном экране, проваливались в бездну под картой, комнаты блокировались глухими стенами, живые тиммейты превращались в мёртвых манекенов на координатах (0, 0, 0), а двери в магазине выворачивались наизнанку.
LateJoinFix — это полностью переработанный, независимый и оптимизированный патч, который устраняет все известные проблемы сетевого движка Photon и процедурной генерации комнат.
🛠️ Что исправлено в LateJoinFix
1. 🚪 Пропадающие комнаты и замурованные проходы (Стены)
- Причина бага: Хост отсылал данные соединений комнат без сетевой буферизации до того, как клиент успевал прогрузить префабы модулей. В результате клиент их отбрасывал, все дверные проемы блокировались глухими стенами, а генерация уровня зависала навсегда.
- Решение в LateJoinFix:
- Реализован надёжный сетевой слепок Photon Event 173: хост гарантированно передаёт полную карту комнат новому игроку.
- Добавлен клиентский авто-сканер (
SweepAndRepairModulesClient): клиент сканирует соседние комнаты по 30-метровой сетке карты, убирает глухие перегородки, открывает дверные проёмы и запускает освещение и туман.
2. 🛡️ Вечный чёрный экран загрузки (Infinite Black Screen)
- Причина бага: Метод игры
LoadingUI.LateUpdateждёт, пока у всех игроков в комнате флагlevelAnimationCompletedстанет равенtrue. При заходе посреди матча у других игроков этот флаг на клиенте по умолчаниюfalse. Из-за этого экран загрузки висел бесконечно. - Решение в LateJoinFix: Клиент автоматически проставляет флаг готовности для всех существующих аватаров.
- Сторожевой таймер (Watchdog): Если экран загрузки висит дольше 3.5 секунд при готовом игроке, мод принудительно и безопасно снимает затемнение (
StopLoading()).
3. 👻 Стоячие манекены на (0, 0, 0) и ложные смерти тиммейтов
- Причина бага: Из-за некорректных фоновых проверок живые игроки ошибочно признавались мёртвыми, а тела ранее погибших игроков спавнились как стоячие манекены на спавне.
- Решение в LateJoinFix: Проверка смерти переведена строго на системные флаги (
deadSet,health <= 0и триггер головы смерти). Фантомные тела корректно скрываются, а сетевой объект остаётся активным — погибших тиммейтов всегда можно воскресить через голову (ReviveRPC).
4. 📍 Безопасный спавн на пол (Никаких спавнов в стены и пустоту)
- Причина бага: Слепой спавн на координатах хоста часто выбрасывал игрока за пределы карты или вглубь текстур стен.
- Решение в LateJoinFix: Алгоритм
GetSafeSpawnTransformс круговой проверкой препятствий и гарантированным рейкастом вниз в твердую геометрию пола (Physics.Raycast).
5. 🏬 Защита от скручивания стен в Магазине и на уровнях
- Причина бага: Повторная синхронизация поворачивала стены модуля на 90°, отрезая половину магазина или создавая дыры в космос.
- Решение в LateJoinFix: Harmony-патч сохраняет исходную ориентацию стен префаба, полностью поддерживая фазу магазина (
SemiFunc.RunIsShop()).
6. 🖐️ Исправление сломанных рук, PhysGrabber и лазера тиммейтов
- Причина бага: Проверка
localCamera == nullзамораживала руки и анимации сетевых тиммейтов. - Решение в LateJoinFix: Проверка камеры ограничена локальным игроком. Руки, захват предметов и анимации сетевых друзей синхронизируются безупречно.
7. 🚪 Сохранение дверей комнат и стабильность физики
- Убран деструктивный код, удалявший двери на петлях (
Object.Destroy). - Убран глобальный сброс кинематики у физ-объектов, предотвращая выпадание предметов сквозь пол.
🎮 Возможности интерфейса (HUD и префикс)
- HUD в левом нижнем углу: Отображает статус входа, тип комнаты, название лобби и количество игроков (напр. 3/6).
- Трекер подключения: Показывает статус подключающихся друзей (Connecting / Queued / Loading / Joined).
- Авто-префикс комнат: Автоматически добавляет
[Late Join (Fix)]к названию открытого лобби. - Защита переходов: Блокирует вход во время смены уровня, предотвращая подключение в момент смены сцены.
🇬🇧 English Version
💡 Overview
LateJoinFix is a standalone, fully verified multiplayer patch that resolves all game-breaking desynchronization, procedural generation, and lifecycle bugs when joining active R.E.P.O. sessions mid-game.
🛠️ Key Fixes Included
-
🚪 Missing Rooms & Solid Wall Blockades Fixed:
- Implemented reliable Photon Event 173 room connection snapshots from host to late joiners.
- Autonomous dungeon healer (
SweepAndRepairModulesClient) on 30m grid removes blocking walls, clears doorways, and initializes lighting and fog.
-
🛡️ Infinite Black Screen Watchdog:
- Fixes the native
LoadingUI.LateUpdatehang by ensuringlevelAnimationCompleted == trueon all players. - 3.5s anti-hang watchdog safely dismisses loading screen once avatar is ready.
- Fixes the native
-
👻 Ghost Dummies at (0, 0, 0) & False Death Fixes:
- Eliminates false death detection on living teammates.
- Cleans up inactive dummy models while preserving
ReviveRPCdelivery so deceased teammates can always be revived.
-
📍 Safe Raycast Ground Spawning:
GetSafeSpawnTransformruns radial raycasts into solid ground geometry, preventing abyss and wall spawns.
-
🏬 Shop & Dungeon Wall Flip Protection:
- Prevents rotation accumulation (+90°), fully supporting the Shop phase (
SemiFunc.RunIsShop()).
- Prevents rotation accumulation (+90°), fully supporting the Shop phase (
-
🖐️ Restored Remote Teammate Hands, Grabbers & Animations:
- Fixes
localCamerascoping so remote teammates' arms, beams, and grabbers never freeze.
- Fixes
-
📦 Clean Packaging & Dependencies:
- Correctly linked to official
BepInEx-BepInExPack-5.4.2100for 100% automated installation via Thunderstore and r2modman.
- Correctly linked to official