Skip to content

Fix server VME in radio auto-tune when a character despawns mid-retune#88

Open
Smiggus wants to merge 1 commit into
7Cav:mainfrom
Smiggus:fix/radio-autotune-callqueue-safety
Open

Fix server VME in radio auto-tune when a character despawns mid-retune#88
Smiggus wants to merge 1 commit into
7Cav:mainfrom
Smiggus:fix/radio-autotune-callqueue-safety

Conversation

@Smiggus

@Smiggus Smiggus commented Jul 4, 2026

Copy link
Copy Markdown

CAV_RadioAutoTuneComponent schedules DeferredHook (+50 ms) and up to 20 WaitForFactionThenRetune retries at 200 ms intervals, a window of roughly 4 seconds after spawn. If the owning character is deleted inside that window (player disconnects during spawn, GM deletes the unit, respawn race), the queued callbacks still fire and call FindComponent/GetChildren on the destroyed entity, producing a NULL pointer VME on the dedicated server. This lines up with intermittent radio-related errors on our servers.

Changes:

  • Cancel both queued callbacks in OnDelete
  • Null-guard m_Owner in WaitForFactionThenRetune, LocateInvMgr, FindGroupSettings, FindAffiliationComp

No change to tuning behavior on the normal path.

The component schedules DeferredHook and up to 20 WaitForFactionThenRetune
retries (200 ms apart) on the call queue. If the owning character is
deleted inside that window (player disconnect, GM cleanup), the queued
calls still fire and dereference m_Owner (FindComponent/GetChildren) on a
destroyed entity, producing a NULL pointer VME on the server.

- Cancel both queued callbacks in OnDelete
- Null-guard m_Owner in WaitForFactionThenRetune, LocateInvMgr,
  FindGroupSettings and FindAffiliationComp
@Smiggus Smiggus force-pushed the fix/radio-autotune-callqueue-safety branch from 3aa84a6 to 2ccba4c Compare July 7, 2026 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant