Universal Conflict Performance
by KanCooRu
3.2.6
- Game Version
- 1.8.0.13
- Created
- Sun, 13 Sep 2026 00:10:31 GMT
- Last Modified
- Sun, 13 Sep 2026 00:10:37 GMT
3.2.5
UCP 3.5.0 — AI Population Guard & AI Active Limit New: AI Population Guard (AIPopulation*, off by default, observation-only) The server's aiLimit is a cooperative check — spawners that never ask the engine spawn straight past it. This guard enforces a hard cap from the outside: every 5 s it takes a world-wide AI census via AIWorld.GetAIAgents() and, if the count exceeds AIPopulationHardLimit, evicts the excess a few at a time, farthest from any player first. Never touches players, corpses, vehicle crews, AI within 300 m of a player, AI younger than 90 s, or the last member of a group. No dependency on any scenario or spawner mod. New: AI Active Limit (AIActiveLimit*, off by default) Drives the engine's native SetLimitOfActiveAIs() from UCP's performance state. Deletes nothing — caps how many AI are simulated at once. Restores the engine baseline when disabled.
- Game Version
- 1.8.0.13
- Created
- Sat, 12 Sep 2026 14:59:49 GMT
- Last Modified
- Sat, 12 Sep 2026 14:59:56 GMT
3.2.4
- Game Version
- 1.8.0.13
- Created
- Wed, 09 Sep 2026 15:44:20 GMT
- Last Modified
- Wed, 09 Sep 2026 15:44:30 GMT
3.2.3
- Game Version
- 1.8.0.13
- Created
- Wed, 09 Sep 2026 13:28:49 GMT
- Last Modified
- Wed, 09 Sep 2026 13:28:55 GMT
3.2.2
- Game Version
- 1.8.0.13
- Created
- Tue, 08 Sep 2026 09:04:45 GMT
- Last Modified
- Tue, 08 Sep 2026 09:04:53 GMT
3.2.1
New Frame monitor: measures real server FPS, frame time and scheduler lateness. Previously the governor only saw UCP's own cycle time and cleanup backlog, so a server at 25 FPS still reported NORMAL #ucp command: live console now reachable in-game (#ucp frame, #ucp help). It previously had no caller at all ROW diagnostic log: one fixed-shape line with players, FPS and entity density — greppable straight into a spreadsheet Performance fixes Removed O(n²) in cleanup (full array scan per candidate → cached single pass) Discovery now scales with player count (full sweep at 40 players: ~4 min → ~1 min) Profiler string lookup → map index Default changes ObservationOnly → false (cleanup now actually deletes; it never had) InvisibleAIObservationOnly → false AIVisibilityObservationOnly → false MaxDestroyedVehicles 30 → 15 (an infantry-heavy PVE server never exceeded 30, so wreck cleanup was unreachable) Safety The player-protection check now refreshes position data itself, so fast-moving players can't have entities deleted out from under them Notes Config v7 migration applies automatically to existing JSON Frame measurement is on, governing is off. Verify the numbers live, then enable PerformanceUseFrameMonitor
- Game Version
- 1.8.0.13
- Created
- Tue, 08 Sep 2026 08:34:09 GMT
- Last Modified
- Tue, 08 Sep 2026 08:34:14 GMT
3.1.9
AIVisibilityGuard optimization and partial script updates for 1.8 compatibility
- Game Version
- 1.8.0.10
- Created
- Sun, 23 Aug 2026 11:19:44 GMT
- Last Modified
- Sun, 23 Aug 2026 11:19:53 GMT
3.1.8
InvisibleAI FIX
- Game Version
- 1.8.0.10
- Created
- Wed, 19 Aug 2026 21:32:37 GMT
- Last Modified
- Wed, 19 Aug 2026 21:32:42 GMT
3.1.7
InvisibleAI FIX
- Game Version
- 1.8.0.10
- Created
- Tue, 18 Aug 2026 20:49:35 GMT
- Last Modified
- Tue, 18 Aug 2026 20:49:40 GMT
3.1.6
UCP Patch — Visibility Replication Fix Root cause: SetVisible(true) was already a no-op (hiddenLevels=0 in logs) — server saw AI as visible, but that state was never replicated to clients. Explains why Game Master could see it but players couldn't. Fix: UCP_AIVisibilityGuard.c now also calls EnableVisibilityReplication(true) on the character + full ancestor chain, alongside SetVisible(true). Added: replicationEnabled counter in Metrics AIVisibility, and replicationDisabledLevels in the fixed/would-fix log lines — to confirm this was the actual gap.
- Game Version
- 1.8.0.10
- Created
- Sat, 15 Aug 2026 20:21:21 GMT
- Last Modified
- Sat, 15 Aug 2026 20:21:27 GMT
3.1.5
UCP Patch — Query Budget Optimization Changed: UCP_Settings.c / UCP_ConfigLoader.c Reduced default InvisibleAIQueryBudgetPerPlayer and AIVisibilityQueryBudgetPerPlayer from 192 → 64 (a 67% cut) Proportionally lowered the CRITICAL-load fallback cap on both from 96 → 32 CURRENT_CONFIG_VERSION bumped 4 → 5, with a new migration step: existing UCP_Settings.json files get these two values corrected automatically, but only if they're still sitting at the stale 192 default — any admin who already customized them to a different number is left untouched Changed: UCP_InvisibleAIGuard.c / UCP_AIVisibilityGuard.c Updated GetEffectiveQueryBudget() in both files to match the new 64/32 baseline
- Game Version
- 1.8.0.10
- Created
- Sat, 15 Aug 2026 17:20:14 GMT
- Last Modified
- Sat, 15 Aug 2026 17:20:23 GMT
3.1.4
InvisibleAI FIX
- Game Version
- 1.7.0.54
- Created
- Thu, 13 Aug 2026 11:42:39 GMT
- Last Modified
- Thu, 13 Aug 2026 11:42:44 GMT
3.1.3
AIVisibility fix
- Game Version
- 1.7.0.54
- Created
- Wed, 12 Aug 2026 14:52:57 GMT
- Last Modified
- Wed, 12 Aug 2026 14:53:02 GMT
3.1.2
1. AI invisibility — root-cause fix (UCP_AIGroupSerializer.c, new) Patches SCR_AIGroupSerializer to never write AI group member UUIDs on save On restart, groups come back empty and get refilled by ConflictPVERemixedVanilla2.0's own spawn system (SpawnPatrol) — the path that never produced invisible AI Setting: SkipAIGroupMemberPersistence (default false) 2. AI invisibility — live detection and fix (UCP_AIVisibilityGuard.c, new) Finds characters where SCR_EditableEntityComponent.GetVisibleSelf() is false and calls SetVisible(true) (same API as Game Master's "Visibility" attribute — confirmed as the actual root cause) Also applies LOD-unlock calls (PreventMaxLOD, SetLOD(9), etc.) as a secondary measure Settings: AIVisibilityGuardEnabled, AIVisibilityObservationOnly, AIVisibilityFixIntervalMs, AIVisibilityRadius, AIVisibilityPlayersPerCycle, AIVisibilityQueryBudgetPerPlayer, AIVisibilityFixBudgetPerCycle, AIVisibilityMaxTracked 3. Query performance/accuracy (UCP_InvisibleAIGuard.c, UCP_AIVisibilityGuard.c) Added EQueryEntitiesFlags.DYNAMIC to QueryEntitiesBySphere calls — excludes static world geometry (trees, rocks) so the query budget is spent finding actual characters instead 4. Save/restore (UCP_Runtime.c) Widens ROKAConflict's save types from AUTO-only to AUTO|MANUAL|SCRIPTED|SHUTDOWN, preventing lost saves on a clean server stop Setting: SaveGameFixEnabled (default true) 5. ACE Medical conflict / player misclassification (UCP_EntityClassifier.c) Classifies corpses via ECharacterLifeState.DEAD instead of the raw IsDestroyed() flag, so ACE's "alive but incapacitated" state is no longer mistaken for death Player-controlled characters are excluded from cleanup entirely, dead or not 6. Vehicle deleted right after exit (UCP_EntityClassifier.c) Occupied vehicles are excluded from tracking; the abandonment timer only starts fresh the moment a vehicle is actually vacated (existing 90-minute grace period now applies correctly per vehicle) 7. Config infrastructure (UCP_Settings.c, UCP_ConfigLoader.c) Added all settings fields needed for the above (declarations, defaults, JSON registration, validation, hot-reload diffing) Bumped CURRENT_CONFIG_VERSION 2→3 with a migration step so existing JSON config files automatically pick up the new fields
- Game Version
- 1.7.0.54
- Created
- Fri, 07 Aug 2026 10:13:57 GMT
- Last Modified
- Fri, 07 Aug 2026 10:14:03 GMT
3.1.1
Bug Fixes 1. Fixed AIPopulationGuard's Deletion Method Replaced SCR_EntityHelper.DeleteEntityAndChildren() with group.RemoveAgent() + RplComponent.DeleteRplEntity() Verified against and switched to the method the original addon actually uses (the old call was meant for deleting corpses, not living AI) 2. Added a Group-Wipeout Prevention Guard Unconditionally refuses any deletion that would leave a group with 1 or fewer members Prevents removing the last member from ever triggering counter-group/capture logic 3. Replaced Combat Detection with the Real API Swapped the distance-based guess for the actual measured value from group.GetGroupUtilityComponent().m_Perception.m_aTargets 4. Replaced AIPopulationGuard's Discovery Method Removed the per-player QueryEntitiesBySphere loop → replaced with a single AIWorld.GetAIAgents() call Improved efficiency and also eliminated the old "can only find AI near players" limitation 5. Cleaned Up Now-Unused Settings (AIPopulationGuard) Removed 3 dead fields: AIPopulationDetectionRadius / PlayersPerCycle / QueryBudgetPerPlayer 6. Fixed InvisibleAIGuard Debug Log Flooding Re-gated two logging spots behind DebugLogs as originally intended, after they were left unconditionally printing from a past debugging session 7. Fixed AIVisibilityGuard's "Fix Once, Never Again" Bug if (m_FixedEntities.Contains(entity)) return; meant an AI fixed once was never re-checked again → changed to match the original addon's behavior (SetGroupLOD reapplies every tick), now reapplies every time This was the actual root cause of AI going invisible again over time with UCP unable to catch it 8. Switched AIVisibilityGuard's Discovery Method to GetAIAgents() Too Same reasoning as #4 — also means a full AI sweep now happens even with zero players online after a server restart Cleaned up now-unused AIVisibilityRadius/PlayersPerCycle/QueryBudgetPerPlayer settings
- Game Version
- 1.7.0.54
- Created
- Sat, 01 Aug 2026 23:37:00 GMT
- Last Modified
- Sat, 01 Aug 2026 23:37:05 GMT
3.1.0
Bug Fixes (this session) 1. Fixed AIPopulationGuard's Deletion Method Replaced SCR_EntityHelper.DeleteEntityAndChildren() with group.RemoveAgent() + RplComponent.DeleteRplEntity() Verified against and switched to the method the original addon actually uses (the old call was meant for deleting corpses, not living AI) 2. Added a Group-Wipeout Prevention Guard Unconditionally refuses any deletion that would leave a group with 1 or fewer members Prevents removing the last member from ever triggering counter-group/capture logic 3. Replaced Combat Detection with the Real API Swapped the distance-based guess for the actual measured value from group.GetGroupUtilityComponent().m_Perception.m_aTargets 4. Replaced Spatial-Query Discovery with GetAIAgents() Removed the per-player QueryEntitiesBySphere loop → improved efficiency and also eliminated the old "can only find AI near players" limitation 5. Cleaned Up Now-Unused Settings Removed 3 dead fields (AIPopulationDetectionRadius / PlayersPerCycle / QueryBudgetPerPlayer) that became meaningless after fix #4 6. Fixed InvisibleAIGuard Debug Log Flooding Re-gated two logging spots behind DebugLogs as originally intended, after they were left unconditionally printing from a past debugging session
- Game Version
- 1.7.0.54
- Created
- Sat, 01 Aug 2026 17:52:14 GMT
- Last Modified
- Sat, 01 Aug 2026 17:52:19 GMT
3.0.0
- Game Version
- 1.7.0.54
- Created
- Tue, 28 Jul 2026 12:37:43 GMT
- Last Modified
- Tue, 28 Jul 2026 12:37:48 GMT
2.7.5
- Game Version
- 1.7.0.54
- Created
- Mon, 27 Jul 2026 02:10:23 GMT
- Last Modified
- Mon, 27 Jul 2026 02:10:29 GMT
2.7.4
- Game Version
- 1.7.0.54
- Created
- Mon, 27 Jul 2026 01:39:14 GMT
- Last Modified
- Mon, 27 Jul 2026 01:39:33 GMT
2.7.3
- Game Version
- 1.7.0.54
- Created
- Mon, 27 Jul 2026 01:25:20 GMT
- Last Modified
- Mon, 27 Jul 2026 01:25:26 GMT
2.7.2
- Game Version
- 1.7.0.54
- Created
- Mon, 27 Jul 2026 00:52:27 GMT
- Last Modified
- Mon, 27 Jul 2026 00:52:39 GMT
2.7.1
- Game Version
- 1.7.0.54
- Created
- Mon, 27 Jul 2026 00:02:40 GMT
- Last Modified
- Mon, 27 Jul 2026 00:02:53 GMT
2.7.0
- Game Version
- 1.7.0.54
- Created
- Sat, 25 Jul 2026 17:50:50 GMT
- Last Modified
- Sat, 25 Jul 2026 17:50:58 GMT
2.6.4
- Game Version
- 1.7.0.54
- Created
- Thu, 23 Jul 2026 12:55:36 GMT
- Last Modified
- Thu, 23 Jul 2026 12:55:41 GMT
2.6.3
- Game Version
- 1.7.0.54
- Created
- Wed, 22 Jul 2026 15:02:32 GMT
- Last Modified
- Wed, 22 Jul 2026 15:02:40 GMT
2.6.2
- Game Version
- 1.7.0.54
- Created
- Mon, 20 Jul 2026 16:07:29 GMT
- Last Modified
- Mon, 20 Jul 2026 16:07:35 GMT
2.6.1
- Game Version
- 1.7.0.54
- Created
- Mon, 20 Jul 2026 15:28:38 GMT
- Last Modified
- Mon, 20 Jul 2026 15:28:49 GMT
2.5.0
- Game Version
- 1.7.0.54
- Created
- Mon, 20 Jul 2026 11:09:30 GMT
- Last Modified
- Mon, 20 Jul 2026 11:09:42 GMT
Showing 1 to 28 of 28 results
Rows per page
Showing 1 to 28 of 28 results
Rows per page