Dynamic Performance System
Adaptive FPS control. Smarter view distance. Safer cleanup. Smoother large missions.
Dynamic Performance System improves Arma 3 performance through adaptive view distance, object distance control, optional terrain grid automation, safe cleanup logic, and an in-game configuration panel.
Requires: CBA_A3
Dynamic Performance System focuses on one thing: improving performance while keeping missions playable, readable, and safe.
Instead of using one fixed view distance everywhere, DPS can react to FPS, movement, vehicle type, altitude, zoom, UAV use, Zeus camera state, and mission conditions.
The goal is to improve smoothness without aggressively deleting important objects, breaking missions, or ruining visibility.
- View distance adapts based on FPS and situation
- Object distance is managed separately from overall view distance
- View-distance changes are smoothed to reduce harsh pop-in
- Infantry, vehicles, aircraft, UAVs, and Zeus can use different scaling behaviour
- Terrain grid can adjust automatically depending on context
- Server cleanup can reduce long-term mission clutter
- Optional local culling is available for very heavy missions
- The in-game DPS panel shows live FPS, view distance, object distance, and terrain grid
Adaptive View Distance
- FPS-aware view-distance control
- Smooth distance transitions
- Minimum and maximum distance limits
- Infantry, vehicle, aircraft, UAV, and Zeus scaling
- Speed, altitude, and zoom-aware behaviour
The goal is to keep visibility high when it matters while reducing unnecessary rendering load when the mission becomes heavy.
Object Distance Control
- Independent object distance mode
- Ratio-based object distance mode
- Object-first reduction behaviour
- Smooth object-distance transitions
- Configurable minimum and maximum limits
This helps reduce expensive object rendering without always cutting the full terrain view.
Terrain Grid Automation
- Infantry profile
- Land vehicle profile
- Aircraft profile
- UAV profile
- Zeus profile
Server Cleanup Logic
- Old body cleanup
- Empty group cleanup
- Weapon holder cleanup
- Optional empty vehicle cleanup
- Safe distance checks around players
- Conservative mission-safe defaults
Safe Body Handling
- Track only
- Hide until needed
- Delete when safe
- Body bag placeholder mode
Optional Local Culling
- Dead bodies
- Dropped gear
- Empty vehicles
- Live AI
- Players
Local culling is disabled by default for maximum mission safety.
Default keybind: Ctrl + Alt + Backslash
CBA keybind name: Open DPS Settings
The DPS panel can show:
- Current FPS
- Current view distance
- Current object view distance
- Current terrain grid
- Editable DPS settings
- Server-controlled settings where applicable
- Enable Dynamic Performance System
- Target FPS
- FPS Smoothing
- FPS Deadband
- Minimum View Distance
- Maximum View Distance
- View-Distance Transition Speed
- Object Distance Mode
- Minimum Object Distance
- Maximum Object Distance
- Object-Distance Transition Speed
- Infantry, Vehicle, Aircraft, UAV, Zeus, Speed, Altitude, and Zoom Scaling
- Terrain Grid Automation
- Server Cleanup Options
- Body Handling Mode
- Weapon Holder Cleanup
- Empty Group Cleanup
- Optional Empty Vehicle Cleanup
- Optional Local Culling
- Dynamic Simulation Helper
- Debug Logging
Recommended Use
- Use the default settings first
- Keep local culling disabled unless testing a heavy mission
- Use a realistic target FPS for your system or server
- Keep cleanup conservative in persistent missions
- Enable debug logging only when troubleshooting
DPS includes manual control variables for mission makers who need specific scripted units to stay active regardless of distance.
This is useful for scripted AI, patrols, flashlight units, ambient behaviour units, custom scenario logic, or other mission entities that should not be frozen by the Dynamic Simulation Helper.
Keep scripted AI active / exclude from DPS dynamic simulation:
this setVariable ["DPS_noDynSim", true, true];
Force a unit or vehicle to be handled by DPS dynamic simulation:
this setVariable ["DPS_forceDynSim", true, true];
How it works:
- Individual AI: Put the variable in the unit init field, or apply it to the unit after it is spawned by script.
- Grouped AI: Arma 3 handles AI dynamic simulation at group level, so if one unit in a group uses DPS_noDynSim, DPS will keep the whole group active.
- Only one specific AI: If you only want one scripted AI to stay active, place or spawn that AI in its own separate group.
- Vehicles: The same variables can also be used on vehicles when needed.
- Multiplayer: The final true in the variable makes it public, which is recommended for hosted multiplayer and dedicated servers.
Dynamic Performance System is designed to improve performance without aggressively interfering with mission frameworks, player groups, AI systems, or important mission entities.
Supported environments:
- Singleplayer
- Hosted multiplayer
- Dedicated servers
- Zeus
- Vanilla Arma 3
- Official DLC content
Designed with these mission types in mind:
- Antistasi-style missions
- Liberation-style missions
- Persistent co-op scenarios
- Zeus operations
- Large combined-arms missions
- AI-heavy missions
- Vehicle-heavy missions
Arma 3 performance is affected by engine and mission-level factors.
Final performance can still depend on:
- Mission scripting
- Number of AI units
- Active vehicles
- Terrain and map assets
- Object density
- Server FPS
- Other loaded mods
- Player hardware
- Arma 3 engine limits
DPS can help manage rendering and cleanup load, but it cannot fully fix engine-level terrain, object, AI, or server performance limits.
Released under the Arma Public License Share Alike.
Read the license[www.bohemia.net]
Please report FPS drops, hitches, bad view-distance behaviour, object distance issues, cleanup or culling problems, RPT errors, mission conflicts, dedicated server issues, or settings that need better defaults.
If possible, include the mission type, map, loaded mods, server/client setup, rough AI count, and any relevant RPT errors.