modded class SCR_RespawnSystemComponent { int m_ERRProbeFrames; override void UpdateLoadingPlaceholder(float dt) { m_ERRProbeFrames++; super.UpdateLoadingPlaceholder(dt); } } modded class DeployMenuSystem { bool ERR_ProbeBinding(SCR_RespawnSystemComponent respawn) { m_RespawnSystem = null; m_bReady = true; Enable(false); ERR_BindEscapeRespawn(respawn); if (m_RespawnSystem != respawn || m_bReady) return false; m_bReady = true; ERR_BindEscapeRespawn(respawn); if (!m_bReady) return false; m_bReady = false; return true; } } modded class ArmaReforgerScripted { protected bool m_ERRProbeStarted, m_ERRProbeDone; protected float m_ERRProbeAt; override void OnUpdate(BaseWorld world, float timeslice) { super.OnUpdate(world, timeslice); ERR_GameMode mode = ERR_GameMode.Get(); if (m_ERRProbeDone || !world || !mode || !mode.Active()) return; SCR_RespawnSystemComponent respawn = SCR_RespawnSystemComponent.Cast(mode.FindComponent(SCR_RespawnSystemComponent)); if (!m_ERRProbeStarted) { m_ERRProbeStarted = true; m_ERRProbeAt = world.GetWorldTime(); if (mode.GetAutoReloadDelay() == 10) Print("ERR LOADING PASS: native restart delay is 10 seconds"); else PrintFormat("ERR LOADING FAIL: delay=%1", mode.GetAutoReloadDelay()); DeployMenuSystem updates = DeployMenuSystem.Cast(GetGame().GetWorld().FindSystem(DeployMenuSystem)); if (updates && updates.ERR_ProbeBinding(respawn)) Print("ERR LOADING PASS: native system rebinds stale cache and preserves repeated binding readiness"); else Print("ERR LOADING FAIL: native binding"); respawn.m_ERRProbeFrames = 0; } if (world.GetWorldTime() - m_ERRProbeAt < 1500) return; if (respawn.m_ERRProbeFrames > 10) PrintFormat("ERR LOADING PASS: native updater delivers %1 frames to replacement respawn", respawn.m_ERRProbeFrames); else PrintFormat("ERR LOADING FAIL: frames=%1", respawn.m_ERRProbeFrames); m_ERRProbeDone = true; Print("ERR LOADING COMPLETE"); } }