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)