Summary
Server-side door fix for Reforger 1.8: human AI respects WiseGuy locks and PO barricades, opens doors proactively and recovers jammed doors. Works with Breach, REAPER and CRX.
Description
[EN]
ZIM_DoorCompat is a server-side compat patch for Arma Reforger 1.8. It makes WiseGuy door locks, Project Outbreak Breach (barricades / zombie door breaching), REAPER and CRX work together. Player actions (barricade, lock, pick lock, open/close) are not touched; zombies and groups with a Z member keep the Breach path unchanged.
Features:
- Locked / barricaded doors: human AI fails cleanly and replans instead of opening them telekinetically or getting stuck.
- Fallback for doors without the "OpenGate" smart action (common in prop mods): human AI opens them via the vanilla door action, so WiseGuy / Breach / REAPER hooks still run. Never for locked or barricaded doors, never for zombies.
- REAPER stuck-door recovery guard: locked or barricaded doors are skipped.
- Proactive door opener (the navmesh has no door navlinks): one budgeted central tick checks moving human AI and opens closed, unlocked, unbarricaded doors in their path; the detect radius grows with speed (up to 6 m), doors swing away from the agent. Open doors are never toggled. Optional auto-close (off by default).
- Jam recovery: at a jammed or half open leaf the agent steps back 1.5 m, waits and re-opens; double doors are handled as a pair, the second try uses the other direction. After 2 failed tries the door is locked for that agent for 120 s so his pathing takes a detour.
- Public static API for other mods (optional, no dependency): ZIM_DoorProactiveOpener.IsAgentBackingOff(agent) / IsBackingOff(agent), IsAgentJamLocked(agent).
- Flow log for diagnostics (DebugPrints=true, rate limited per door): NAVLINK, OPENDOOR, REAPERSTUCK, MOVEFAIL, PROACTIVE, UNJAM / BACKOFF / JAMLOCK.
Settings: $profile:ZIM_DoorCompat/settings.json, created with defaults on first start, one line per variable. ConfigVersion 8; older files are migrated automatically (missing keys added, your values kept), files with a higher version are never rewritten.
Load order: load it after WiseGuy, CRX, REAPER and all Project Outbreak mods.
Not included on purpose: mixed groups with a Z member stay on the Breach zombie path; no Door_Base.et override (it would only create duplicate actions).
[DE]
ZIM_DoorCompat ist ein serverseitiger Kompatibilitäts-Patch für Arma Reforger 1.8. Er bringt WiseGuy-Türschlösser, Project Outbreak Breach (Barrikaden / Zombie-Türaufbruch), REAPER und CRX zusammen. Spieleraktionen (Barrikade, Abschließen, Schloss knacken, Öffnen/Schließen) bleiben unberührt; Zombies und Gruppen mit einem Z-Mitglied behalten den Breach-Pfad unverändert.
Funktionen:
- Abgeschlossene / verbarrikadierte Türen: menschliche KI scheitert sauber und plant neu, statt sie telekinetisch zu öffnen oder hängen zu bleiben.
- Fallback für Türen ohne die Smart Action "OpenGate" (häufig bei Prop-Mods): menschliche KI öffnet sie über die Vanilla-Türaktion, damit WiseGuy- / Breach- / REAPER-Hooks weiter laufen. Nie bei abgeschlossenen oder verbarrikadierten Türen, nie für Zombies.
- Schutz für REAPERs Stuck-Door-Recovery: abgeschlossene oder verbarrikadierte Türen werden übersprungen.
- Proaktiver Türöffner (das Navmesh hat keine Tür-Navlinks): ein zentraler, budgetierter Tick prüft laufende menschliche KI und öffnet geschlossene, nicht abgeschlossene, nicht verbarrikadierte Türen auf ihrem Weg; der Erkennungsradius wächst mit der Geschwindigkeit (bis 6 m), Türen öffnen vom Agenten weg. Offene Türen werden nie umgeschaltet. Optionales Auto-Close (standardmäßig aus).
- Klemmende Türen: an einem klemmenden oder halb offenen Flügel tritt der Agent 1,5 m zurück, wartet und öffnet neu; Doppeltüren werden als Paar behandelt, der zweite Versuch in die andere Richtung. Nach 2 Fehlversuchen ist die Tür für diesen Agenten 120 s gesperrt, damit seine Wegfindung einen Umweg nimmt.
- Öffentliche statische API für andere Mods (optional, keine Abhängigkeit): ZIM_DoorProactiveOpener.IsAgentBackingOff(agent) / IsBackingOff(agent), IsAgentJamLocked(agent).
- Ablauf-Log zur Diagnose (DebugPrints=true, pro Tür begrenzt): NAVLINK, OPENDOOR, REAPERSTUCK, MOVEFAIL, PROACTIVE, UNJAM / BACKOFF / JAMLOCK.
Einstellungen: $profile:ZIM_DoorCompat/settings.json, beim ersten Start mit Standardwerten erzeugt, eine Zeile pro Variable. ConfigVersion 8; ältere Dateien werden automatisch migriert (fehlende Keys ergänzt, deine Werte bleiben), Dateien mit höherer Version werden nie überschrieben.
Ladereihenfolge: nach WiseGuy, CRX, REAPER und allen Project-Outbreak-Mods laden.
Bewusst nicht enthalten: gemischte Gruppen mit Z-Mitglied bleiben auf dem Breach-Zombie-Pfad; kein Override von Door_Base.et (würde nur doppelte Aktionen erzeugen).
License
Arma Public License (APL)