ORCA_ACE_TurretReloadCrashFix_

by Betcon
ORCA_ACE_TurretReloadCrashFix_

Summary

Ace core Fix

Description

ORCA ACE Turret Reload Crash Fix
================================

Project GUID: 600D3259155B0F9F
Required mod: ACE Core Dev
Workshop ID: 65AD7D0D9941A380
Target class: SCR_TurretControllerComponent
Target function: RpcDo_ACE_ForceReloadWeaponWithServer

Why this exists
---------------
Observed dedicated-server crash:

  Virtual Machine Exception
  Reason: Maximum number of attempts exceeded!
  Class: SCR_TurretControllerComponent
  Function: RpcDo_ACE_ForceReloadWeaponWithServer

ACE Core Dev's scripted turret reload performs DoReloadWeaponWith() and retries
on failure. Its upstream implementation retries 10 times, 100 ms apart. If all
attempts fail, it calls Debug.Error("Maximum number of attempts exceeded!").

This patch changes ONLY the terminal failure behavior:

  Upstream ACE:
    10 failed attempts -> Debug.Error -> Virtual Machine Exception risk

  ORCA patch:
    10 failed attempts -> WARNING log -> abort that reload request -> continue

The retry count and timing stay at the ACE defaults (10 x 100 ms). This keeps
the behavior change as small as possible.

Dependencies
------------
- Arma Reforger: 58D0FB3206B6F859
- ACE Core Dev:  65AD7D0D9941A380

Load order
----------
ACE Core Dev must load before this patch. The addon.gproj dependency declares
that relationship.

For the ORCA server mod list, place the published ORCA patch after ACE Core Dev.
It does not need to be the absolute final mod, but no later mod should override
the same SCR_TurretControllerComponent function.

Workbench validation
--------------------
1. Add this folder to Workbench Launcher using "Add Existing" and select addon.gproj.
2. Ensure ACE Core Dev is installed/available to Workbench.
3. Open the project.
4. Script Editor -> Compile and Reload Scripts (Shift+F7).
5. There must be no SCRIPT (E) compile errors.
6. Start a test session with a turret/vehicle that can reproduce the ACE reload issue.
7. After a failed reload, expected log is:

   [ORCA_ACE_TurretReloadCrashFix] ACE turret reload failed after 10 attempts; request aborted safely.

8. The old fatal line should NOT appear from this path:

   Virtual Machine Exception
   Reason: Maximum number of attempts exceeded!
   Function: RpcDo_ACE_ForceReloadWeaponWithServer

Important
---------
- This is a source package, not a precompiled Workshop addon.
- I cannot run Arma Reforger Workbench in this environment, so final Enfusion
  compilation must be performed in your Workbench before publishing.
- If ACE later removes/fixes this exact function, recompile this patch. If the
  method signature changes, Workbench will intentionally produce an override
  compile error instead of silently applying an outdated patch.
- If another later-loaded mod overrides this exact method, load/dependency order
  determines which implementation executes.

ACE source basis
----------------
ACE Anvil is GPL-2.0-or-later. This patch contains a modified implementation of
an ACE method and is therefore supplied with the GPL-2.0 license text.

License

Arma Public License (APL)

Version
1.0.0
Game Version
1.8.0.13
Version size
1.55 KB
Created
12.10.2026
Last Modified
12.10.2026
ID
6A98E9A8A4F8A20D

Dependencies