{"name":"enableSimulation","operator":null,"title":"enableSimulation","type":"command","url":"https://community.bistudio.com/wiki/enableSimulation","revid":376579,"updated":"2025-10-28T15:58:20Z","groups":["Object Manipulation"],"status":"ok","replaced_by":[],"games":[{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma2","name":"Arma 2","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":"global","effect":"local","server_exec":false},"exec":null,"description":"Enables / disables simulation for the given entity, e.g its animation and physics; it will still be able to take damage and report enemies.\nThis command will affect entity simulation only locally.\nFor a global and JIP enabled alternative, see enableSimulationGlobal.","syntaxes":[{"syntax":"entity enableSimulation state","since":null,"effect":null,"exec":null,"params":[{"name":"entity","type":"Object","optional":false,"default":null,"description":null,"types":["Object"],"since":null,"text":"entity: Object"},{"name":"state","type":"Boolean","optional":false,"default":null,"description":null,"types":["Boolean"],"since":null,"text":"state: Boolean"}],"returns":{"type":"Nothing","types":["Nothing"],"description":null,"text":"Nothing"},"form":"binary","operator":null,"left":{"text":"entity","types":["Object"]},"right":{"text":"state","types":["Boolean"]}}],"examples":[{"text":"```sqf\nplayer enableSimulation false;\n```","code":["player enableSimulation false;"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["enableSimulationGlobal","simulationEnabled","enableDynamicSimulationSystem","dynamicSimulationSystemEnabled","enableDynamicSimulation","dynamicSimulationEnabled","setDynamicSimulationDistance","dynamicSimulationDistance","setDynamicSimulationDistanceCoef","dynamicSimulationDistanceCoef","triggerDynamicSimulation","canTriggerDynamicSimulation"],"notes":[{"user":"Tyrspawn","date":"2011-07-20T04:39:00Z","text":"> [!NOTE]\n> The following only applies to Arma 2 before a certain patch, in which such changes have been integrated in the game code.\n\nNou/Jaynus have discovered something quite important about the Arma 2 engine:\n\nOrient yourself to the enableSimulation command in Arma 2:\n\nIf simulation is disabled on objects (this enablesimulation false), they do not send updates across the network, drastically reducing traffic across the network by an order of magnitude. What this means in practicality is that it is possible to have huge mission maker created cities with no or negligible impact on mission performance. Mission placed objects is the most common cause of performance woes - so this is huge news, and was previously undocumented, both on the BIS wiki and elsewhere.\n\nThere are some quirks.\n\nWhile an object which has enableSimulation false set on it will take damage, it will not display any animations or damage states until enableSimulation is enabled back onto it. If you want to disable simulation on a unit and then show it as dieing once it is hit or damaged, add an eventhandler onto it which enables simulation on the object when it is hit or killed. Hit handler for best visual, killed handler for best performance.\n\nThis discovery will be the basis of a new unit caching script by Jaynus.\n\nThis also has importance in a technical sense: bandwith is the most significant factor in mission performance. The lower the server bandwith, the better the performance."},{"user":"Rocket","date":"2011-09-08T14:20:00Z","text":"Objects with disabled simulation are not calculated for lightsources beyond the global light (moon/sun), so any light sources you create will not light them."},{"user":"Killzone_Kid","date":"2014-10-21T15:33:00Z","text":"Units that have been previously subjected to enableSimulation false; or enableSimulationGlobal false; may stay unrecognised for a long time even after simulation was re-enabled, returning objNull as cursorTarget. Force revealing units with reveal command usually solves the problem. For example:\n\n```sqf\n{ player reveal _x } forEach allUnits;\n```"},{"user":"Waffle SS.","date":"2015-05-23T16:28:00Z","text":"After using **enableSimulation** false or enableSimulationGlobal false on an object, setPos will still update its position across the network in MP."},{"user":"Pierre MGI","date":"2015-12-02T18:55:00Z","text":"After using enableSimulation false or enableSimulationGlobal false on a vehicle (car, helo), don't forget to re-enable simulation on this vehicle before a player jumps into it. Otherwise, he will be stuck in it, with a black screen and no way to escape!"},{"user":"Demellion","date":"2016-09-01T16:52:00Z","text":"Since **Arma 3 1.56** the object can also be returned with cursorObject even if the simulation is not enabled."}],"categories":["Arma 2: New Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Object Manipulation","Introduced with Arma 2 version 1.00","Scripting Commands","Scripting Commands: Local Effect","Take On Helicopters: Scripting Commands"]}