Silence_QOL_Fixes
by Silence_AUS
1.0.28
potential fix to crash observed on own test server
- Game Version
- 1.7.0.54
- Created
- Sun, 28 Jun 2026 09:58:34 GMT
- Last Modified
- Sun, 28 Jun 2026 09:58:43 GMT
1.0.27
removed Promote and Demote Dependency as this replaces it.
- Game Version
- 1.7.0.54
- Created
- Sun, 28 Jun 2026 02:08:31 GMT
- Last Modified
- Sun, 28 Jun 2026 02:08:36 GMT
1.0.26
fixing menu size as entity list was very large
- Game Version
- 1.7.0.54
- Created
- Sun, 28 Jun 2026 01:53:39 GMT
- Last Modified
- Sun, 28 Jun 2026 01:53:50 GMT
1.0.25
Added Toggle Visibility — Right-click any entity in the GM editor to hide/show it. Works on AI soldiers, vehicles, and props. Hidden entities remain fully functional (AI still behaves normally). Visibility change replicates to all connected clients. Smite — Right-click any entity to call down a lightning strike. Kills AI/players and destroys vehicles; props without a damage manager get the VFX only. Toggle Damage — Right-click any entity to toggle invincibility. When used on a vehicle, nearby occupants (within 6 m) also receive partial protection — hit zones can't be reduced below 50% health, so they survive IED blasts without being fully invincible. Teleport to Leader — Right-click a player to teleport them to their current group leader. No effect if they're already the leader. Cycle Combat Mode — Right-click an AI group to toggle Fire at Will / Hold Fire. Cycle Formation — Right-click an AI group to cycle through movement formations (Wedge, Line, Column, Staggered Column). F11 / F12 clipboard shortcuts — F11 copies GM selection, F12 pastes at cursor. Ctrl+C/V were intercepted by the editor's undo/redo system so they've been rebound. Vehicle auto-cleanup (reworked) — Empty vehicles are deleted after 22 minutes. Uses a single timer per vehicle with a proximity check instead of a polling loop, eliminating the rubber banding the old system caused. Fixed Promote/demote now correctly promotes players past General into custom staff ranks (Veteran, Senior, Staff). The XP handler was silently capping at General's threshold and discarding the delta. Season wipe now properly zeroes XP for connected players. Previously, if the live XP reset didn't stick, players would reconnect with their pre-wipe XP restored from the save file. Duplicate GM right-click menu icons removed. Six vanilla action classes were being registered twice due to how Reforger merges mod configs additively. Cycle Formation now advances each group from its own actual formation state when multi-selecting, rather than all groups sharing one counter. Paste entity is now always visible in the menu (greyed out until something is copied). Removed GM clipboard slots 2 and 3 — single slot retained to keep the menu clean.
- Game Version
- 1.7.0.54
- Created
- Sat, 27 Jun 2026 06:48:27 GMT
- Last Modified
- Sat, 27 Jun 2026 06:48:36 GMT
1.0.24
Various fixes, Icons, XP reset bypass and visability toggle not functioning as intended
- Game Version
- 1.7.0.54
- Created
- Sat, 27 Jun 2026 05:32:34 GMT
- Last Modified
- Sat, 27 Jun 2026 05:32:45 GMT
1.0.23
GM Editor Update ================ New context menu actions ------------------------ Toggle Damage Right-click any soldier, vehicle, or object to make it invincible. Click again to restore normal damage. Useful for protecting key assets or scripted characters during events. Teleport to Leader Right-click a player character to instantly teleport them to their current group leader's position. Has no effect if the player is already the leader. Cycle Combat Mode Right-click an AI group to cycle through its combat modes (Fire at Will → Hold Fire → and back). A hint shows the active mode after each click. Cycle Formation Right-click an AI group to cycle through movement formations — Wedge, Line, Column, and Staggered Column. All four actions show only when relevant (damage toggle only appears on damageable entities, group actions only on AI groups). Clipboard improvements ---------------------- The GM copy/paste clipboard now has three slots, all accessible from the right-click menu. Copy and paste slot 1, 2, or 3 independently to keep multiple entity setups ready at once. Ctrl+C and Ctrl+V remain as shortcuts for slot 1. A new Cycle Paste Orientation action rotates or mirrors what you paste — Normal, Rotate 90°, Rotate 180°, Rotate 270°, and Mirrored. Useful for placing symmetric structures without manually rotating each piece. Removed ------- Visibility toggle and refresh actions have been removed. They were unreliable and are no longer included in the menu. Vehicle despawn tracking has been removed. The background polling it used was causing periodic server stutter and has been taken out entirely.
- Game Version
- 1.7.0.54
- Created
- Sat, 27 Jun 2026 04:35:32 GMT
- Last Modified
- Sat, 27 Jun 2026 04:35:37 GMT
1.0.22
Added
- GM context action "Toggle Visibility" (order 121) — re-implemented Right-click any non-AI, non-group entity to toggle its visibility.
Previous implementation was removed after attempting to use EEditableEntityFlag.IS_HIDDEN, which does not exist (EEditableEntityFlag
is editor metadata only). Re-implemented using the engine-level EntityFlags.VISIBLE flag directly on the IEntity owner via
ClearFlags / SetFlags. AI characters are excluded (AIControlComponent guard) as hiding them breaks their behaviour; group entities are excluded as they have no physical representation.
- GM context action "Smite" (order 125)
Right-click any entity — AI, player, vehicle, or prop — in the GM Editor to call down a lightning strike and kill/destroy it. Spawns the engine lightning prefab (LightningStrike.et) at the entity's terrain-snapped position with a random yaw so repeated use looks natural. Kills via SCR_DamageManagerComponent.Kill(); props without a damage manager receive the VFX only. Group entities are excluded (no physical body to strike). Works on players.
Icon: smite.edds ({31ADDB8F9355E6C1})
- GM context action "Trigger EMP" (order 130) — from Silence EMP GM Registered here in TempEdit.conf; logic lives in the standalone
Silence EMP GM addon which must be loaded alongside this mod.
Right-click any entity to trigger a silent server-wide EMP:
all fueled vehicles are drained to zero and all player radio items are powered off. Duration is configurable per-action in Workbench
(default 600 s / 10 min, supports up to 1800 s / 30 min). Full auto-restoration when the timer expires. No player notifications at any stage — vehicles and radios simply stop working.
Icon: emp.edds ({3C8AADBA55D4F633})
- GM context action "Cycle Formation" (order 129)
Right-click an AI group entity in the GM Editor to cycle its movement formation (Wedge → Line → Column → Staggered Column →
wraps around). Uses AIFormationComponent.SetFormation(string)
directly. Formation name strings are derived from the SCR_EAIGroupFormation enum via typename.EnumToString(), which matches the names the engine expects. Each group's current formation
is read back via AIFormationComponent.GetFormation().GetName() so
multi-selection advances every group independently from its actual current state rather than a shared counter.
- GM context action "Cycle Combat Mode" (order 128)
Right-click an AI group entity in the GM Editor to cycle its combat mode (Fire at Will → Hold Fire → … wraps around). Uses SCR_AIGroupUtilityComponent.SetCombatMode() and GetCombatMode
External(). Mode values are discovered at runtime via SCR_Enum.
GetEnumValues() so the action automatically handles any modes
added by future game updates. Hint shows the new mode name on activation.
- GM context action "Teleport to Leader" (order 127)
Right-click a player character in the GM Editor to teleport them
to their current group leader's position. Has no effect if the player is already the leader. Uses SCR_GroupsManagerComponent.
GetPlayerGroup() and SCR_AIGroup.GetLeaderID() / IsPlayerLeader().
Ported from Game Master Enhanced (APL).
- GM context action "Toggle Damage" (order 126)
Right-click any entity with a damage manager in the GM Editor to toggle invincibility on or off. When invincible the entity takes no damage and cannot be destroyed; clicking again restores normal damage. Invincibility is implemented via modded class injection (ARGC_DamageManagerMod.c) — covers both base entities and characters (SCR_CharacterDamageManagerComponent override required separately since it does not call super). Ported from GME (APL).
- Custom GM icons:
toggle_damage.edds— shield with person silhouette inside teleport_to_leader.edds — person → arrow → person with star cycle_combat_mode.edds — crosshair / target reticle cycle_formation.edds — five circles in wedge (▲) pattern
smite.edds — lightning bolt
emp.edds — electric orb with plasma tendrils (in Silence EMP GM)
Fixed
- Cycle Formation shared static index replaced with per-group state reading. Previously all groups in a multi-selection shared one
global s_iFormationIndex counter, causing them to advance in lockstep regardless of their actual current formation.
Fixed by reading AIFormationComponent.GetFormation().GetName()
per group per call and looking the result up in the FORMATIONS array. Each group now advances from its own real state.
Removed
- Visibility context actions removed (Toggle Visibility, Refresh Visibility). Both actions and their script files deleted; TempEdit.conf entries removed. Feature was unused and the underlying approach was unreliable.
(Re-added this release using the correct EntityFlags.VISIBLE API —
see Added section above.)
- Vehicle cleanup system removed entirely (ARGC_VehicleCleanupComponent, ARGC_VehicleCleanupManager, ARGC_GMVehicleDespawnStatusContextAction,
ARGC_GMDespawnTimerKey keybind, ARGC_StopwatchIcon). The periodic CheckDriverStatus polling was causing consistent rubber banding on the server. Removed all script, config, and icon references.
================================================================
- Ctrl+C / Ctrl+V GM clipboard shortcuts (ARGC_GMClipboardShortcutController.c)
Ctrl+C copies the current GM selection to clipboard slot 1 (same as the "Copy Entity" context action).
Ctrl+V pastes clipboard slot 1 at the cursor's world position and immediately selects the newly-spawned entity/entities so
they can be dragged without an extra click.
Both shortcuts are no-ops outside an active GM Editor session. Bound via new actions in Configs/System/chimeraInputCommon.conf (ARGC_GMCtrlModifier, ARGC_GMCopySelection, ARGC_GMPasteSelection) - rebindable in the Controls menu like any other action.
Fixed
- Compile error in ARGC_GMClipboardShortcutController.c (unsafe
down-cast on SCR_MenuLayoutEditorComponent.GetInstance()) that was failing the entire "Game" script module build. While unresolved, this silently broke every GM context action in the addon with no error/hint shown in-game - including Promote/Demote and the Wipe XP two-step flow. Fixed by wrapping the call in an explicit .Cast(). If Promote/Demote or Wipe XP appeared dead before this update, a script reload should restore them.
================================================================- Game Version
- 1.7.0.54
- Created
- Fri, 26 Jun 2026 11:36:11 GMT
- Last Modified
- Fri, 26 Jun 2026 11:36:19 GMT
1.0.21
New context menu actions ------------------------ Toggle Damage Right-click any soldier, vehicle, or object to make it invincible. Click again to restore normal damage. Useful for protecting key assets or scripted characters during events. Teleport to Leader Right-click a player character to instantly teleport them to their current group leader's position. Has no effect if the player is already the leader. Cycle Combat Mode Right-click an AI group to cycle through its combat modes (Fire at Will → Hold Fire → and back). A hint shows the active mode after each click. Cycle Formation Right-click an AI group to cycle through movement formations — Wedge, Line, Column, and Staggered Column. All four actions show only when relevant (damage toggle only appears on damageable entities, group actions only on AI groups). Clipboard improvements ---------------------- The GM copy/paste clipboard now has three slots, all accessible from the right-click menu. Copy and paste slot 1, 2, or 3 independently to keep multiple entity setups ready at once. Ctrl+C and Ctrl+V remain as shortcuts for slot 1. A new Cycle Paste Orientation action rotates or mirrors what you paste — Normal, Rotate 90°, Rotate 180°, Rotate 270°, and Mirrored. Useful for placing symmetric structures without manually rotating each piece. Removed ------- Visibility toggle and refresh actions have been removed. They were unreliable and are no longer included in the menu. Vehicle despawn tracking has been removed. The background polling it used was causing periodic server stutter and has been taken out entirely.
- Game Version
- 1.7.0.49
- Created
- Wed, 24 Jun 2026 12:33:25 GMT
- Last Modified
- Wed, 24 Jun 2026 12:33:36 GMT
1.0.20
Added
- GM context action "Toggle Damage" (order 126)
Right-click any entity with a damage manager in the GM Editor to
toggle invincibility on or off. When invincible the entity takes
no damage and cannot be destroyed; clicking again restores normal
damage. Invincibility is implemented via modded class injection
(ARGC_DamageManagerMod.c) — covers both base entities and
characters (SCR_CharacterDamageManagerComponent override required
separately since it does not call super). Ported from GME (APL).
- GM context action "Teleport to Leader" (order 127)
Right-click a player character in the GM Editor to teleport them
to their current group leader's position. Has no effect if the
player is already the leader. Uses SCR_GroupsManagerComponent.
GetPlayerGroup() and SCR_AIGroup.GetLeaderID() / IsPlayerLeader().
Ported from Game Master Enhanced (APL).
- GM context action "Cycle Combat Mode" (order 128)
Right-click an AI group entity in the GM Editor to cycle its
combat mode (Fire at Will → Hold Fire → … wraps around). Uses
SCR_AIGroupUtilityComponent.SetCombatMode() and GetCombatMode
External(). Mode values are discovered at runtime via SCR_Enum.
GetEnumValues() so the action automatically handles any modes
added by future game updates. Hint shows the new mode name on
activation.
- GM context action "Cycle Formation" (order 129)
Right-click an AI group entity in the GM Editor to cycle its
movement formation (Wedge → Line → Column → Staggered Column →
wraps around). Uses AIFormationComponent.SetFormation(string)
directly. Formation name strings are derived from the
SCR_EAIGroupFormation enum via typename.EnumToString(), which
matches the names the engine expects. Cycle position is tracked
via a static index (no public getter exists to read the current
formation back from the component).
- Custom GM icons for all four new context actions:
toggle_damage.edds — shield with person silhouette inside
teleport_to_leader.edds — person → arrow → person with star
cycle_combat_mode.edds — crosshair / target reticle
cycle_formation.edds — five circles in wedge (▲) pattern
Removed
- Visibility context actions removed (Toggle Visibility,
Refresh Visibility). Both actions and their script files
deleted; TempEdit.conf entries removed. Feature was unused
and the underlying approach was unreliable.
- Vehicle cleanup system removed entirely (ARGC_VehicleCleanupComponent,
ARGC_VehicleCleanupManager, ARGC_GMVehicleDespawnStatusContextAction,
ARGC_GMDespawnTimerKey keybind, ARGC_StopwatchIcon). The periodic
CheckDriverStatus polling was causing consistent rubber banding on
the server. Removed all script, config, and icon references.
================================================================
- Ctrl+C / Ctrl+V GM clipboard shortcuts (ARGC_GMClipboardShortcutController.c)
Ctrl+C copies the current GM selection to clipboard slot 1
(same as the "Copy Entity" context action).
Ctrl+V pastes clipboard slot 1 at the cursor's world position
and immediately selects the newly-spawned entity/entities so
they can be dragged without an extra click.
Both shortcuts are no-ops outside an active GM Editor session.
Bound via new actions in Configs/System/chimeraInputCommon.conf
(ARGC_GMCtrlModifier, ARGC_GMCopySelection, ARGC_GMPasteSelection) -
rebindable in the Controls menu like any other action.
Fixed
- Compile error in ARGC_GMClipboardShortcutController.c (unsafe
down-cast on SCR_MenuLayoutEditorComponent.GetInstance()) that was
failing the entire "Game" script module build. While unresolved,
this silently broke every GM context action in the addon with no
error/hint shown in-game - including Promote/Demote and the Wipe
XP two-step flow. Fixed by wrapping the call in an explicit
.Cast(). If Promote/Demote or Wipe XP appeared dead before this
update, a script reload should restore them.- Game Version
- 1.7.0.49
- Created
- Wed, 24 Jun 2026 09:16:27 GMT
- Last Modified
- Wed, 24 Jun 2026 09:16:35 GMT
1.0.19
Performance & Memory Leak Fixes ARGC_VehicleCleanupComponent.c Removed per-vehicle EOnFixedFrame polling that ran every physics tick for every tracked vehicle. This was the primary cause of server FPS degradation. The component is now a pure state holder — occupancy tracking is handled by the manager's 30-second sweep instead of per-frame callbacks. Added OnDelete hook that calls NotifyVehicleDeleted() on the manager while the entity pointer is still valid, preventing stale pointer accumulation in the tracking maps (the original memory leak). ARGC_VehicleCleanupManager.c Fixed OnQueryVehicle callback: replaced m_aTrackedVehicles.Find(vehicle) (O(n) linear scan, ran for every entity in a 100 km sphere query) with O(1) map lookups against m_aVehicleSpawnTime and m_aVehicleLastDriverTime. This was causing a frame spike on every sphere scan pass. Staggered scan schedules: ScanForVehicles initial delay changed from 2 s to 17 s so it never fires on the same frame as CheckAllVehicles (every 30 s). Because 17 + 60k is never divisible by 30, the two sweeps are permanently offset. Reduced ScanForVehicles repeat interval from 10 s to 60 s. VCC vehicles self-register on spawn so the scan is only a safety net for generic prefabs. ARGC_SafeZone.c Added ARGC_SafeZoneDamageProxy per-character proxy class. The old OnCharacterDamageStateChanged callback had no entity reference and scanned all connected players on every damage event (O(n) per hit). Each character now gets its own proxy at spawn time; the callback heals that specific character directly — O(1). Added ARGC_SafeZoneVehicleProxy per-vehicle proxy class using the same pattern. The old vehicle damage handler called QueryEntitiesBySphere across every zone on every hit event. Each vehicle now has its own proxy stored in m_mVehicleProxies; the callback does a direct distance check — no sphere query. Removed m_aZoneQueryEntities scratch buffer and the ARGC_AddZoneQueryEntity callback that populated it. ARGC_StingerAI.c Added FALLBACK_SCAN_INTERVAL = 2.0 s throttle for the no-WCS-emitter fallback path. The fallback previously called QueryEntitiesBySphere(1200 m) at the full seeker scan rate (5 Hz per AI). It now runs at 0.5 Hz per AI — a 10× reduction in sphere query frequency when WCS emitters are not visible. ARGC_StatsHUD.c Added cached rank fields (m_sCachedRankName, m_iCachedXP, m_iCachedXPToNext). GetRankProgressForPlayer allocates a full faction rank step array (12+ heap objects) on every call. The rank display now recomputes every 5 ticks (5 s) instead of every tick — allocation pressure reduced by 5×. Fixed ComputeLiveGlobalRank: the old implementation called GetCombatStats() per connected player each tick, which called FindComponent(SCR_ScoringSystemComponent) inside every loop iteration (O(N × FindComponent) per second). Replaced with a single GetScoringSystem() call before the loop and scoring.GetPlayerScore(pid) per player — O(1) component lookup regardless of player count. ARGC_GameModeHook.c Fixed SaveAllPlayers: the old implementation called SavePlayerData() per player, each of which called LoadFromFile() and SaveToFile() — N synchronous disk reads and N synchronous disk writes per autosave event on the main thread. Refactored to load once, update all player records in memory, then save once (2 disk operations total regardless of player count). ARGC_VehicleCleanupManager.c / ARGC_VehicleCleanupComponent.c (removed) Replaced by Configs/Systems/ChimeraSystemsConfig.conf — same Chimera garbage system override as the standalone Vehicle Persistence mod. Vehicle lifetime 2700 s (45 min), PlayerDistance 35 m. Removed VehicleCleanupManager instantiation from ARGC_GameModeHook.c. WCS_AI_StingerFix.c (removed) Removed per-missile EOnFixedFrame guidance loop. It ran 3× FindComponent at 40 Hz per missile in flight plus a 50 Hz flare scan during post-bootstrap — significant cost whenever multiple missiles were airborne. The WCS seeker handles target locking natively; ARGC_StingerAI.c handles AI lock-on and seeker injection at fire time without any per-missile polling. WCS_DefaultIRFlareDecoyPatch.c Moved WCS_PruneExternalDecoyFlares() from inside WCS_FindBestExternalDecoyFlareForMissile() to the top of WCS_ExternalDecoyScanAndRedirect(), called once per scan cycle. Previously it ran once per non-skipped seeker per cycle — with 3 missiles targeting the same helicopter it pruned the flare list 3× instead of 1× per 50 ms window. Increased m_fExternalDecoyScanInterval default from 0.05 s (20 Hz) to 0.2 s (5 Hz) per helicopter. Flares last 2–6 seconds; a 200 ms detection lag has no meaningful gameplay impact and cuts per-helicopter scan cost by 4×. Added lazy-init cache for WCS_AI_HeliAutoCountermeasureComponent. The component reference is now fetched once on first scan and reused, eliminating the repeated FindComponent call every 200 ms per helicopter. Removed the WCS_AI_StingerGuidanceComponent skip-check (class no longer exists). ARGC_GMRankLogic.c (rank display fix — both Silence QOL Fixes and ARGC-PromoteAndDemote) Fixed AppendStaffRanks incorrectly using the faction's top rank (which could already be a CUSTOM rank with a very high XP threshold) as the base for Veteran/Senior/Staff thresholds, pushing them unreachably high and capping the display at the last standard rank. Staff rank thresholds now compute from the highest non-CUSTOM (standard military) rank XP only. Staff ranks (CUSTOM1/2/3) are now skipped if the faction's own SCR_RankContainer already defines them. This prevents hardcoded "Veteran/Senior/Staff" entries from duplicating or shadowing the server's own custom rank names and XP thresholds. WCS_AI_JavelinFix.c (removed) Removed per-missile EOnFixedFrame guidance loop. It ran 4× FindComponent at 40 Hz per Javelin missile in flight: InfraredGroundMissileFlightComputerComponent, InfraredSeekerComponent, RplComponent every physics frame, plus MissileMovementComponent inside WCS_AI_ForceSteerToPoint called every frame with no caching. With multiple Javelins in the air simultaneously this was the primary remaining source of server frame spikes and vehicle rubber-banding. The WCS seeker handles target tracking natively. ARGC_StingerAI.c (removed) Removed all AI launcher components: ARGC_StingerAIComponent, ARGC_IGLAAIComponent, ARGC_JavelinAIComponent, and ARGC_HeliFlareComponent. Any prefab with these components attached will need them removed in Workbench. WCS_AI_InfraredSeeker_AIShared.c (stripped) Removed the WCS_Armament_InfraredSeekerComponent modded class (AI seeker update path, WCS_ForceInit, CalculateTargetInfo_AI, flare spoofing). With WCS_AI_JavelinFix.c gone, WCS_ForceInit is never called and m_bWCS_Initialised stays false on every seeker, making the entire AI path dead code that was still running an ownership check every render frame per missile seeker. Kept the WCS_Armament_FlareInfraredEmitterComponent modded class — its WCS_AI_FLARE_EMITTERS static registry is still used by WCS_DefaultIRFlareDecoyPatch.c for the helicopter flare decoy system.
- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 13:44:56 GMT
- Last Modified
- Tue, 23 Jun 2026 13:45:03 GMT
1.0.18
Performance & Memory Leak Fixes ARGC_VehicleCleanupComponent.c Removed per-vehicle EOnFixedFrame polling that ran every physics tick for every tracked vehicle. This was the primary cause of server FPS degradation. The component is now a pure state holder — occupancy tracking is handled by the manager's 30-second sweep instead of per-frame callbacks. Added OnDelete hook that calls NotifyVehicleDeleted() on the manager while the entity pointer is still valid, preventing stale pointer accumulation in the tracking maps (the original memory leak). ARGC_VehicleCleanupManager.c Fixed OnQueryVehicle callback: replaced m_aTrackedVehicles.Find(vehicle) (O(n) linear scan, ran for every entity in a 100 km sphere query) with O(1) map lookups against m_aVehicleSpawnTime and m_aVehicleLastDriverTime. This was causing a frame spike on every sphere scan pass. Staggered scan schedules: ScanForVehicles initial delay changed from 2 s to 17 s so it never fires on the same frame as CheckAllVehicles (every 30 s). Because 17 + 60k is never divisible by 30, the two sweeps are permanently offset. Reduced ScanForVehicles repeat interval from 10 s to 60 s. VCC vehicles self-register on spawn so the scan is only a safety net for generic prefabs. ARGC_SafeZone.c Added ARGC_SafeZoneDamageProxy per-character proxy class. The old OnCharacterDamageStateChanged callback had no entity reference and scanned all connected players on every damage event (O(n) per hit). Each character now gets its own proxy at spawn time; the callback heals that specific character directly — O(1). Added ARGC_SafeZoneVehicleProxy per-vehicle proxy class using the same pattern. The old vehicle damage handler called QueryEntitiesBySphere across every zone on every hit event. Each vehicle now has its own proxy stored in m_mVehicleProxies; the callback does a direct distance check — no sphere query. Removed m_aZoneQueryEntities scratch buffer and the ARGC_AddZoneQueryEntity callback that populated it. ARGC_StingerAI.c Added FALLBACK_SCAN_INTERVAL = 2.0 s throttle for the no-WCS-emitter fallback path. The fallback previously called QueryEntitiesBySphere(1200 m) at the full seeker scan rate (5 Hz per AI). It now runs at 0.5 Hz per AI — a 10× reduction in sphere query frequency when WCS emitters are not visible. ARGC_StatsHUD.c Added cached rank fields (m_sCachedRankName, m_iCachedXP, m_iCachedXPToNext). GetRankProgressForPlayer allocates a full faction rank step array (12+ heap objects) on every call. The rank display now recomputes every 5 ticks (5 s) instead of every tick — allocation pressure reduced by 5×. Fixed ComputeLiveGlobalRank: the old implementation called GetCombatStats() per connected player each tick, which called FindComponent(SCR_ScoringSystemComponent) inside every loop iteration (O(N × FindComponent) per second). Replaced with a single GetScoringSystem() call before the loop and scoring.GetPlayerScore(pid) per player — O(1) component lookup regardless of player count. ARGC_GameModeHook.c Fixed SaveAllPlayers: the old implementation called SavePlayerData() per player, each of which called LoadFromFile() and SaveToFile() — N synchronous disk reads and N synchronous disk writes per autosave event on the main thread. Refactored to load once, update all player records in memory, then save once (2 disk operations total regardless of player count). WCS_AI_StingerFix.c (removed) Removed per-missile EOnFixedFrame guidance loop. It ran 3× FindComponent at 40 Hz per missile in flight plus a 50 Hz flare scan during post-bootstrap — significant cost whenever multiple missiles were airborne. The WCS seeker handles target locking natively; ARGC_StingerAI.c handles AI lock-on and seeker injection at fire time without any per-missile polling. WCS_DefaultIRFlareDecoyPatch.c Moved WCS_PruneExternalDecoyFlares() from inside WCS_FindBestExternalDecoyFlareForMissile() to the top of WCS_ExternalDecoyScanAndRedirect(), called once per scan cycle. Previously it ran once per non-skipped seeker per cycle — with 3 missiles targeting the same helicopter it pruned the flare list 3× instead of 1× per 50 ms window. Increased m_fExternalDecoyScanInterval default from 0.05 s (20 Hz) to 0.2 s (5 Hz) per helicopter. Flares last 2–6 seconds; a 200 ms detection lag has no meaningful gameplay impact and cuts per-helicopter scan cost by 4×. Added lazy-init cache for WCS_AI_HeliAutoCountermeasureComponent. The component reference is now fetched once on first scan and reused, eliminating the repeated FindComponent call every 200 ms per helicopter. Removed the WCS_AI_StingerGuidanceComponent skip-check (class no longer exists). ARGC_GMRankLogic.c (rank display fix — both Silence QOL Fixes and ARGC-PromoteAndDemote) Fixed AppendStaffRanks incorrectly using the faction's top rank (which could already be a CUSTOM rank with a very high XP threshold) as the base for Veteran/Senior/Staff thresholds, pushing them unreachably high and capping the display at the last standard rank. Staff rank thresholds now compute from the highest non-CUSTOM (standard military) rank XP only. Staff ranks (CUSTOM1/2/3) are now skipped if the faction's own SCR_RankContainer already defines them. This prevents hardcoded "Veteran/Senior/Staff" entries from duplicating or shadowing the server's own custom rank names and XP thresholds. WCS_AI_JavelinFix.c (removed) Removed per-missile EOnFixedFrame guidance loop. It ran 4× FindComponent at 40 Hz per Javelin missile in flight: InfraredGroundMissileFlightComputerComponent, InfraredSeekerComponent, RplComponent every physics frame, plus MissileMovementComponent inside WCS_AI_ForceSteerToPoint called every frame with no caching. With multiple Javelins in the air simultaneously this was the primary remaining source of server frame spikes and vehicle rubber-banding. The WCS seeker handles target tracking natively. ARGC_StingerAI.c (removed) Removed all AI launcher components: ARGC_StingerAIComponent, ARGC_IGLAAIComponent, ARGC_JavelinAIComponent, and ARGC_HeliFlareComponent. Any prefab with these components attached will need them removed in Workbench. WCS_AI_InfraredSeeker_AIShared.c (stripped) Removed the WCS_Armament_InfraredSeekerComponent modded class (AI seeker update path, WCS_ForceInit, CalculateTargetInfo_AI, flare spoofing). With WCS_AI_JavelinFix.c gone, WCS_ForceInit is never called and m_bWCS_Initialised stays false on every seeker, making the entire AI path dead code that was still running an ownership check every render frame per missile seeker. Kept the WCS_Armament_FlareInfraredEmitterComponent modded class — its WCS_AI_FLARE_EMITTERS static registry is still used by WCS_DefaultIRFlareDecoyPatch.c for the helicopter flare decoy system.
- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 13:10:18 GMT
- Last Modified
- Tue, 23 Jun 2026 13:10:29 GMT
1.0.17
Performance & Memory Leak Fixes ARGC_VehicleCleanupComponent.c Removed per-vehicle EOnFixedFrame polling that ran every physics tick for every tracked vehicle. This was the primary cause of server FPS degradation. The component is now a pure state holder — occupancy tracking is handled by the manager's 30-second sweep instead of per-frame callbacks. Added OnDelete hook that calls NotifyVehicleDeleted() on the manager while the entity pointer is still valid, preventing stale pointer accumulation in the tracking maps (the original memory leak). ARGC_VehicleCleanupManager.c Fixed OnQueryVehicle callback: replaced m_aTrackedVehicles.Find(vehicle) (O(n) linear scan, ran for every entity in a 100 km sphere query) with O(1) map lookups against m_aVehicleSpawnTime and m_aVehicleLastDriverTime. This was causing a frame spike on every sphere scan pass. Staggered scan schedules: ScanForVehicles initial delay changed from 2 s to 17 s so it never fires on the same frame as CheckAllVehicles (every 30 s). Because 17 + 60k is never divisible by 30, the two sweeps are permanently offset. Reduced ScanForVehicles repeat interval from 10 s to 60 s. VCC vehicles self-register on spawn so the scan is only a safety net for generic prefabs. ARGC_SafeZone.c Added ARGC_SafeZoneDamageProxy per-character proxy class. The old OnCharacterDamageStateChanged callback had no entity reference and scanned all connected players on every damage event (O(n) per hit). Each character now gets its own proxy at spawn time; the callback heals that specific character directly — O(1). Added ARGC_SafeZoneVehicleProxy per-vehicle proxy class using the same pattern. The old vehicle damage handler called QueryEntitiesBySphere across every zone on every hit event. Each vehicle now has its own proxy stored in m_mVehicleProxies; the callback does a direct distance check — no sphere query. Removed m_aZoneQueryEntities scratch buffer and the ARGC_AddZoneQueryEntity callback that populated it. ARGC_StingerAI.c Added FALLBACK_SCAN_INTERVAL = 2.0 s throttle for the no-WCS-emitter fallback path. The fallback previously called QueryEntitiesBySphere(1200 m) at the full seeker scan rate (5 Hz per AI). It now runs at 0.5 Hz per AI — a 10× reduction in sphere query frequency when WCS emitters are not visible. ARGC_StatsHUD.c Added cached rank fields (m_sCachedRankName, m_iCachedXP, m_iCachedXPToNext). GetRankProgressForPlayer allocates a full faction rank step array (12+ heap objects) on every call. The rank display now recomputes every 5 ticks (5 s) instead of every tick — allocation pressure reduced by 5×. Fixed ComputeLiveGlobalRank: the old implementation called GetCombatStats() per connected player each tick, which called FindComponent(SCR_ScoringSystemComponent) inside every loop iteration (O(N × FindComponent) per second). Replaced with a single GetScoringSystem() call before the loop and scoring.GetPlayerScore(pid) per player — O(1) component lookup regardless of player count. ARGC_GameModeHook.c Fixed SaveAllPlayers: the old implementation called SavePlayerData() per player, each of which called LoadFromFile() and SaveToFile() — N synchronous disk reads and N synchronous disk writes per autosave event on the main thread. Refactored to load once, update all player records in memory, then save once (2 disk operations total regardless of player count). WCS_AI_StingerFix.c (removed) Removed per-missile EOnFixedFrame guidance loop. It ran 3× FindComponent at 40 Hz per missile in flight plus a 50 Hz flare scan during post-bootstrap — significant cost whenever multiple missiles were airborne. The WCS seeker handles target locking natively; ARGC_StingerAI.c handles AI lock-on and seeker injection at fire time without any per-missile polling. WCS_DefaultIRFlareDecoyPatch.c Moved WCS_PruneExternalDecoyFlares() from inside WCS_FindBestExternalDecoyFlareForMissile() to the top of WCS_ExternalDecoyScanAndRedirect(), called once per scan cycle. Previously it ran once per non-skipped seeker per cycle — with 3 missiles targeting the same helicopter it pruned the flare list 3× instead of 1× per 50 ms window. Increased m_fExternalDecoyScanInterval default from 0.05 s (20 Hz) to 0.2 s (5 Hz) per helicopter. Flares last 2–6 seconds; a 200 ms detection lag has no meaningful gameplay impact and cuts per-helicopter scan cost by 4×. Added lazy-init cache for WCS_AI_HeliAutoCountermeasureComponent. The component reference is now fetched once on first scan and reused, eliminating the repeated FindComponent call every 200 ms per helicopter. Removed the WCS_AI_StingerGuidanceComponent skip-check (class no longer exists).
- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 12:28:22 GMT
- Last Modified
- Tue, 23 Jun 2026 12:28:31 GMT
1.0.16
Performance & Memory Leak Fixes ARGC_VehicleCleanupComponent.c Removed per-vehicle EOnFixedFrame polling that ran every physics tick for every tracked vehicle. This was the primary cause of server FPS degradation. The component is now a pure state holder — occupancy tracking is handled by the manager's 30-second sweep instead of per-frame callbacks. Added OnDelete hook that calls NotifyVehicleDeleted() on the manager while the entity pointer is still valid, preventing stale pointer accumulation in the tracking maps (the original memory leak). ARGC_VehicleCleanupManager.c Fixed OnQueryVehicle callback: replaced m_aTrackedVehicles.Find(vehicle) (O(n) linear scan, ran for every entity in a 100 km sphere query) with O(1) map lookups against m_aVehicleSpawnTime and m_aVehicleLastDriverTime. This was causing a frame spike on every sphere scan pass. Staggered scan schedules: ScanForVehicles initial delay changed from 2 s to 17 s so it never fires on the same frame as CheckAllVehicles (every 30 s). Because 17 + 60k is never divisible by 30, the two sweeps are permanently offset. Reduced ScanForVehicles repeat interval from 10 s to 60 s. VCC vehicles self-register on spawn so the scan is only a safety net for generic prefabs. ARGC_SafeZone.c Added ARGC_SafeZoneDamageProxy per-character proxy class. The old OnCharacterDamageStateChanged callback had no entity reference and scanned all connected players on every damage event (O(n) per hit). Each character now gets its own proxy at spawn time; the callback heals that specific character directly — O(1). Added ARGC_SafeZoneVehicleProxy per-vehicle proxy class using the same pattern. The old vehicle damage handler called QueryEntitiesBySphere across every zone on every hit event. Each vehicle now has its own proxy stored in m_mVehicleProxies; the callback does a direct distance check — no sphere query. Removed m_aZoneQueryEntities scratch buffer and the ARGC_AddZoneQueryEntity callback that populated it. ARGC_StingerAI.c Added FALLBACK_SCAN_INTERVAL = 2.0 s throttle for the no-WCS-emitter fallback path. The fallback previously called QueryEntitiesBySphere(1200 m) at the full seeker scan rate (5 Hz per AI). It now runs at 0.5 Hz per AI — a 10× reduction in sphere query frequency when WCS emitters are not visible. ARGC_StatsHUD.c Added cached rank fields (m_sCachedRankName, m_iCachedXP, m_iCachedXPToNext). GetRankProgressForPlayer allocates a full faction rank step array (12+ heap objects) on every call. The rank display now recomputes every 5 ticks (5 s) instead of every tick — allocation pressure reduced by 5×. Fixed ComputeLiveGlobalRank: the old implementation called GetCombatStats() per connected player each tick, which called FindComponent(SCR_ScoringSystemComponent) inside every loop iteration (O(N × FindComponent) per second). Replaced with a single GetScoringSystem() call before the loop and scoring.GetPlayerScore(pid) per player — O(1) component lookup regardless of player count. ARGC_GameModeHook.c Fixed SaveAllPlayers: the old implementation called SavePlayerData() per player, each of which called LoadFromFile() and SaveToFile() — N synchronous disk reads and N synchronous disk writes per autosave event on the main thread. Refactored to load once, update all player records in memory, then save once (2 disk operations total regardless of player count).
- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 11:58:15 GMT
- Last Modified
- Tue, 23 Jun 2026 11:58:23 GMT
1.0.15
Fix 5 — SafeZone vehicle damage handler (ARGC_SafeZone.c) The old OnVehicleDamageStateChanged was a single shared callback registered on every vehicle's damage manager. Because the callback signature only passes the new EDamageState (no entity reference), the handler had no idea which vehicle triggered it. It was forced to call QueryEntitiesBySphere for every defined zone on every single damage event to find vehicles to heal. During active combat near a base, vehicles take damage from bullets, explosions, etc. hundreds of times per second — each time touching every entity in every zone radius. The fix is the same proxy pattern used for characters: ARGC_SafeZoneVehicleProxy stores the vehicle reference at registration time. When its vehicle takes damage it just checks IsInsideSafeZone(m_Vehicle.GetOrigin()) — O(n_zones) distance checks — then heals directly. No sphere query at all. Fix 6 — StingerAI fallback scan (ARGC_StingerAI.c) When no WCS IR-emitter-equipped aircraft are in range (which is the common state when the air is clear), the fallback path HandleFallbackScan was calling QueryEntitiesBySphere(aimOrigin, 1200m) on every scan tick at 5Hz. With 10+ IGLA/Stinger AI soldiers in the world, that's 50+ 1200m sphere scans per second, each touching every entity in that radius. Added FALLBACK_SCAN_INTERVAL = 2.0 with a separate m_fFallbackScanTimer. The cheap WCS emitter filter still runs at 0.2s so WCS-equipped helicopters are detected at normal speed. The expensive fallback sphere query is now capped at once per 2 seconds per AI — a 10× reduction.
- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 11:15:32 GMT
- Last Modified
- Tue, 23 Jun 2026 11:15:39 GMT
1.0.14
Fixed
- Server FPS: VehicleCleanupComponent was polling CheckDriverStatus at 1 Hz (every 1 second) per vehicle. With multiple vehicles each running a full player-list iteration and AI compartment scan every second, the combined overhead scaled badly with player count. Interval increased to 10 seconds -- despawn timers are in minutes so 10s granularity has no practical impact on cleanup accuracy.
- Memory leak: VehicleCleanupComponent's CheckDriverStatus callqueue entry was never cancelled when a vehicle was deleted externally (e.g. by another mod or mission script). The callqueue held a strong reference to the component, preventing garbage collection and firing the callback every second indefinitely. Added OnDelete() override that cancels the callqueue entry before the entity pointer goes stale.
- Memory leak: VehicleCleanupManager's tracking maps
(m_aVehicleLastDriverTime, m_aVehicleSpawnTime) were never cleaned up when vehicles were removed from the tracking arrays due to external deletion. The array entries were nulled but the corresponding map entries accumulated without bound over long sessions. Fixed via a new NotifyVehicleDeleted() method called from VehicleCleanupComponent's OnDelete() while the entity pointer is still valid, plus best-effort null-key cleanup in CheckAllVehicles and ScanForVehicles.
- Memory leak: ScanForVehicles Phase 3 only swept m_aTrackedVehicles for null entries; m_aSpawnTrackedVehicles was never checked. Null entries from externally deleted never-driven vehicles accumulated in that array indefinitely. Phase 3 now sweeps both lists.
- SafeZone: OnCharacterDamageStateChanged was registered on every player's SCR_DamageManagerComponent but iterated ALL connected players on every single damage event to find who was in a zone -- O(n) per hit, compounding to O(n^2) during a firefight at zone boundaries. Replaced with per-character ARGC_SafeZoneDamageProxy instances that each target only their specific entity, making the damage check O(1).- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 10:44:06 GMT
- Last Modified
- Tue, 23 Jun 2026 10:44:11 GMT
1.0.13
Reupload to ensure version is up to date
- Game Version
- 1.7.0.49
- Created
- Tue, 23 Jun 2026 08:48:35 GMT
- Last Modified
- Tue, 23 Jun 2026 08:48:40 GMT
1.0.12
Few minor tweaks in interactions
- Game Version
- 1.7.0.49
- Created
- Sun, 21 Jun 2026 10:28:05 GMT
- Last Modified
- Sun, 21 Jun 2026 10:28:12 GMT
1.0.11
Added
- Ctrl+C / Ctrl+V GM clipboard shortcuts (ARGC_GMClipboardShortcutController.c)
Ctrl+C copies the current GM selection to clipboard slot 1
(same as the "Copy Entity" context action).
Ctrl+V pastes clipboard slot 1 at the cursor's world position
and immediately selects the newly-spawned entity/entities so
they can be dragged without an extra click.
Both shortcuts are no-ops outside an active GM Editor session.
Bound via new actions in Configs/System/chimeraInputCommon.conf
(ARGC_GMCtrlModifier, ARGC_GMCopySelection, ARGC_GMPasteSelection) -
rebindable in the Controls menu like any other action.
Fixed
- Compile error in ARGC_GMClipboardShortcutController.c (unsafe
down-cast on SCR_MenuLayoutEditorComponent.GetInstance()) that was
failing the entire "Game" script module build. While unresolved,
this silently broke every GM context action in the addon with no
error/hint shown in-game - including Promote/Demote and the Wipe
XP two-step flow. Fixed by wrapping the call in an explicit
.Cast(). If Promote/Demote or Wipe XP appeared dead before this
update, a script reload should restore them.- Game Version
- 1.7.0.49
- Created
- Fri, 19 Jun 2026 15:52:16 GMT
- Last Modified
- Fri, 19 Jun 2026 15:52:21 GMT
1.0.10
Removed Igla due to connection crashout on spawn
- Game Version
- 1.7.0.49
- Created
- Fri, 19 Jun 2026 09:12:59 GMT
- Last Modified
- Fri, 19 Jun 2026 09:13:09 GMT
1.0.9
fixing soldier conflict
- Game Version
- 1.7.0.49
- Created
- Fri, 19 Jun 2026 09:04:09 GMT
- Last Modified
- Fri, 19 Jun 2026 09:04:15 GMT
1.0.8
Persistent XP & Custom Ranks — players accrue XP across sessions; rank progression extends past vanilla Major with three staff tiers (Veteran, Senior, Staff). Saved server-side, survives restarts. Season Wipe — wipe all XP and start a fresh season either via a server-side file edit, or in-game through a GM two-step confirm (Arm, then Confirm within 60s) to avoid accidental wipes. GM Context Actions — Copy/Paste Entity, Toggle Protected, Refresh Visibility (fixes AI left invisible after a soft crash), Promote/Demote on player entities, and the XP wipe arm/confirm actions. Safe Zone — configurable no-damage zone, position/radius adjustable in Workbench. Vehicle Cleanup — auto-despawns abandoned vehicles (45 min if driven then left, 15 min if spawned but never entered); vehicles with a living AI driver are exempt. Stats HUD — persistent on-screen panel showing rank, XP, kills, vehicle kills, and deaths; position is adjustable and saved between sessions. AI MANPADS & ATGM Lock-On (Stinger / IGLA / Javelin) — AI soldiers equipped with these launchers now properly scan, dwell, and lock on before firing, using WCS_Armaments for in-flight guidance. Includes helicopter flare countermeasures on missile launch.
- Game Version
- 1.7.0.49
- Created
- Fri, 19 Jun 2026 08:39:11 GMT
- Last Modified
- Fri, 19 Jun 2026 08:39:21 GMT
1.0.7
Silence QOL Fixes — Update Notes Vehicle Cleanup System now activates automatically on server start. No Workbench component placement is required. Vehicles occupied only by dead AI corpses are no longer protected from despawn. Previously, any AI body in a vehicle seat (even killed) would hold the timer indefinitely. IGLA AI (ARGC_IGLAAIComponent) Standalone mode is now on by default, enabling 360° scanning without a behaviour tree or facing requirement. Fixes GM-placed AI IGLA units that previously failed to engage aircraft reliably. Lock-on dwell reduced from 4 s to 1.5 s so fast CAS passes are still engaged before the aircraft exits range. GM Context Menu Fixed "Refresh Visibility" and "Toggle Visibility" actions — a compile error was preventing both from loading. Both are now functional. WCS Armaments — AI Weapon Prefabs Added full AI launcher prefabs for FIM-92 Stinger, FGM-148 Javelin, and 9K38 IGLA. AI soldiers using these launchers now fire dedicated AI ammo with the full WCS guidance stack (infrared seeker, flight computer, proximity fuze, missile movement). Added AI ammo prefab for the 9M313 IGLA missile, inheriting the complete WCS component configuration from the AIM-92 Stinger AI ammo. Fixed broken ammo GUID references in the Stinger AI and Javelin AI launchers that would have caused silent failures at runtime. Fixed Javelin AI launcher: wrong display name (was showing Stinger name), oversized item volume, and incorrect shot sound. Fixed IGLA AI launcher: shot sound was using RPG-7 audio instead of the correct MANPAD fire sound.
- Game Version
- 1.7.0.49
- Created
- Fri, 19 Jun 2026 05:42:45 GMT
- Last Modified
- Fri, 19 Jun 2026 05:42:51 GMT
1.0.6
XP Wipe: corrected 30s → 60s window, clarified both steps require ground right-click (no entity hovered) GM Context Actions: split by context (entity / player / ground), removed the retired Copy slots 2&3, Paste slots 2&3, Cycle Orientation, and Hide/Show Unit entries Vehicle Cleanup: noted it's now auto-starting (no Workbench placement), added dead AI behaviour, added timer values IGLA section: documented standalone mode on, 1.5s dwell, and why WCS Integration: replaced the "not currently active" note with accurate info — missile guidance IS active via WCS_AI_StingerGuidanceComponent on ammo prefabs Prefab setup section: added MANPADS prefab checklist at the bottom
- Game Version
- 1.7.0.49
- Created
- Thu, 18 Jun 2026 11:57:22 GMT
- Last Modified
- Thu, 18 Jun 2026 11:57:29 GMT
1.0.5
Fixing the stingerAI to try and give dumb rockets lock-on. lets hope it works, this should give all helicopters the IR emmiters used for WCS lockon allowing all Igla's, stinger and Javelins to lock on and track helicopters
- Game Version
- 1.7.0.49
- Created
- Thu, 18 Jun 2026 11:00:32 GMT
- Last Modified
- Thu, 18 Jun 2026 11:00:38 GMT
1.0.4
Fixed the context menus, still working on Stinger AI
- Game Version
- 1.7.0.49
- Created
- Thu, 18 Jun 2026 10:50:25 GMT
- Last Modified
- Thu, 18 Jun 2026 10:50:32 GMT
1.0.3
Added Stinger weapon and ammo prefabs so stinger AI should work with the launchers, added launchers to custom squad, FIA Sapper Team
- Game Version
- 1.7.0.49
- Created
- Thu, 18 Jun 2026 09:52:02 GMT
- Last Modified
- Thu, 18 Jun 2026 09:52:13 GMT
1.0.2
Broke my compile, fixed and reupload
- Game Version
- 1.7.0.49
- Created
- Thu, 18 Jun 2026 07:31:43 GMT
- Last Modified
- Thu, 18 Jun 2026 07:31:51 GMT
1.0.1
Codebase improvements and icons
- Game Version
- 1.7.0.49
- Created
- Wed, 17 Jun 2026 10:10:56 GMT
- Last Modified
- Wed, 17 Jun 2026 10:11:05 GMT
1.0.0
- Game Version
- 1.7.0.49
- Created
- Wed, 17 Jun 2026 08:59:51 GMT
- Last Modified
- Wed, 17 Jun 2026 08:59:56 GMT
Showing 1 to 29 of 29 results
Rows per page
Showing 1 to 29 of 29 results
Rows per page