{"name":"Arma 3: Debug Console","title":"Arma 3: Debug Console","type":"topic","url":"https://community.bistudio.com/wiki/Arma_3:_Debug_Console","revid":377942,"updated":"2026-01-11T22:56:41Z","aliases":["Arma 3 Debug Console","Mission Editor: Debug Console (Arma 3)"],"markdown":"Arma 3 v0.54\n\nThe **Debug Console** is an editing tool that provides scenario designers with the ability to observe variables and to execute code on the fly.\n\n### Access\n\nWhile playing a mission from the editor, the console is immediately available in pause menu.\nIn the old 2D Editor map screen, you can open it by clicking the \"Debug Console\" button or with <kbd>Ctrl</kbd> + <kbd>D</kbd>.\nIn Eden editor it is available under `Tools > Debug Console`.\n\nIn multiplayer the debug console is available by default only when MP preview is started from Eden Editor, and is only available to the host who started it.\nIn all other cases debug console needs to be explicitly enabled with either editor attribute or *enableDebugConsole* param (see below).\nIt is worth noting that when debug console is configured for admin access, it is only available for logged in admin, voted in admin is treated just like any other user in this respect.\n\n### Configuration\n\nThe console is automatically available in missions running from editor.\nIf mission designer wishes to enable it elsewhere, he can achieve it in one of the three ways:\n\n- Using mission config param. You can add *\"\\a3\\functions_f\\Params\\paramDebugConsole.hpp\"* mission parameter, where server host / admin can choose whether or not he'll allow debug console.\n- Using following Description.ext param, for example:\n\n  ```cpp\n  enableDebugConsole = 1;\n  ```\n\n  Possible values:\n  - 0 - Default behavior, available only in editor\n  - 1 - Available in SP and for hosts / logged in admins in MP\n  - 2 - Available for everyone\n- Using Eden attribute `Debug Console`, available in `Attributes > General > States > Debug Console`\n- Using global/mod config param, for example:\n\n  ```cpp\n  enableDebugConsole = 2;\n  ```\n\n#### Whitelisting Multiple Users (Arma 3 v1.72)\n\nIt is possible to let more than one person access debug console in Multiplayer.\nThis is done by defining `enableDebugConsole` param as Array and adding UIDs of whitelisted users to this array, for example:\n\n```cpp\nenableDebugConsole[] = { \"81273982178973213\", \"3749832749732749\", \"7492374983274234\" };\n```\n\nAll users with UIDs matching the added UIDs will be able to access debug console in Multiplayer.\nAdditionally, server host will also be able to use debug console, as well as any logged in admin on dedicated server.\n\n#### Mod support\n\nSince Arma 3 v1.72 it is possible to configure debug console availability with a mod param `enableDebugConsole`.\nThis param is checked if no debug console option is set in the mission.\nIf a server admin would like to make debug console available for a group of trusted people, he can create a custom mod, for example with `enableDebugConsole = 2;` then sign it and distribute it amongst trusted people.\nThis way anyone who has this custom mod signed with correct signature, will be able to connect to the server and use debug console.\nArray of UIDs is also supported here.\n\nTo whitelist (multiple) users with a mod, if *enableDebugConsole* has already been defined, use the delete keyword:\n\n```cpp\ndelete enableDebugConsole;\nenableDebugConsole[] = { \"81273982178973213\" };\n```\n\n#### Order of Precedence\n\n1. Mission param is checked. If it is not defined then...\n1. description.ext param `enableDebugConsole` is checked. If is not defined then...\n1. Eden attribute option is checked. If not defined then...\n1. Global/mod param `enableDebugConsole` is checked.\n\n#### BattlEye Filters\n\nDebug Console uses Remote Execution. If you wish to exclude Debug Console execution from BE Filters, add this to your `remoteexec.txt`\n\n```\n!=\"BIS_fnc_debugConsoleExec \\[[0-2],\\{.*\\}\\]\"\n```\n\n### Features\n\n> [!NOTE]\n> You can clear large amounts of text from the expression field or a watch field by selecting the field and pressing <kbd>Ctrl</kbd> + <kbd>A</kbd> and then <kbd>Del</kbd>.\n\n#### Expression field\n\n- The expression is saved when the debug console is closed and restored again upon return.\n- Arma 3 v1.74 Comments with `//` are supported (use <kbd>⇧ Shift</kbd> + <kbd>Return ↵</kbd> to start a new line).\n- The expression can be executed in the unscheduled environment using the following buttons:\n  - Local - execute on player's computer using remoteExec to call the given code.\n  - Global - execute on all computers using remoteExec to call the given code. Only enabled in MP.\n  - Server - execute only on the server using remoteExec to call the given code. Only enabled in MP.\n  - Performance Test - See: diag_codePerformance\n\n#### 4x Watch field\n\n- The expression is saved when the debug console is closed and restored again upon return.\n- When the code is taking too long to evaluate (>0.003s), the background turns orange and the value is not saved.\n- Watch field execution is paused when the user edits the watch expression and resumed on change of focus or when pressing <kbd>Return ↵</kbd>.\n\n#### Execution result field (Arma 3 v1.74)\n\n- The execution result field shows result of local execution of the expression code.\n- In MP the execution result field shows remote result for server execution.\n\n#### Expression History\n\nThe debug console will keep track of the last ten expressions which were executed.\nOne can use <kbd>↟ PgUp</kbd> and <kbd>↡ PgDown</kbd> to cycle through them.\n\n#### Buttons\n\nAll of the following buttons close the pause menu and open another window.\n\n- Spectator Camera\n- Arma 3: Splendid Camera\n- Functions Viewer\n- Config Viewer\n- Animation Viewer\n- User Interface Editor\n\n#### Profile Saving\n\nThe debug console automatically saves each field as you go, even after game restart.\nThese can also be access using profileNamespace getVariable with the following code:\n\n- **Expression Field**\n\n  ```sqf\n  profileNamespace getVariable \"rscdebugconsole_expression\";\n  ```\n- **4x Watch Field**\n\n  ```sqf\n  profileNamespace getVariable \"rscdebugconsole_watch1\";\n  profileNamespace getVariable \"rscdebugconsole_watch2\";\n  profileNamespace getVariable \"rscdebugconsole_watch3\";\n  profileNamespace getVariable \"rscdebugconsole_watch4\";\n  ```\n\nUsing the same variables you can also clear or change the fields.\n\n### Utilities\n\nIn order to access Arma 3: Utilities from debug console, type `utils` in the debug console and press local exec.\nTo go directly to the utility of your choice use `utils n`, where `n` is the number of the utility in the list.\nFor example `utils 2` will take you to config browser.\n\n### See Also\n\n- Debugging Techniques","sections":[{"heading":null,"level":1,"markdown":"Arma 3 v0.54\n\nThe **Debug Console** is an editing tool that provides scenario designers with the ability to observe variables and to execute code on the fly."},{"heading":"Access","level":3,"markdown":"While playing a mission from the editor, the console is immediately available in pause menu.\nIn the old 2D Editor map screen, you can open it by clicking the \"Debug Console\" button or with <kbd>Ctrl</kbd> + <kbd>D</kbd>.\nIn Eden editor it is available under `Tools > Debug Console`.\n\nIn multiplayer the debug console is available by default only when MP preview is started from Eden Editor, and is only available to the host who started it.\nIn all other cases debug console needs to be explicitly enabled with either editor attribute or *enableDebugConsole* param (see below).\nIt is worth noting that when debug console is configured for admin access, it is only available for logged in admin, voted in admin is treated just like any other user in this respect."},{"heading":"Configuration","level":3,"markdown":"The console is automatically available in missions running from editor.\nIf mission designer wishes to enable it elsewhere, he can achieve it in one of the three ways:\n\n- Using mission config param. You can add *\"\\a3\\functions_f\\Params\\paramDebugConsole.hpp\"* mission parameter, where server host / admin can choose whether or not he'll allow debug console.\n- Using following Description.ext param, for example:\n\n  ```cpp\n  enableDebugConsole = 1;\n  ```\n\n  Possible values:\n  - 0 - Default behavior, available only in editor\n  - 1 - Available in SP and for hosts / logged in admins in MP\n  - 2 - Available for everyone\n- Using Eden attribute `Debug Console`, available in `Attributes > General > States > Debug Console`\n- Using global/mod config param, for example:\n\n  ```cpp\n  enableDebugConsole = 2;\n  ```"},{"heading":"Whitelisting Multiple Users (Arma 3 v1.72)","level":4,"markdown":"It is possible to let more than one person access debug console in Multiplayer.\nThis is done by defining `enableDebugConsole` param as Array and adding UIDs of whitelisted users to this array, for example:\n\n```cpp\nenableDebugConsole[] = { \"81273982178973213\", \"3749832749732749\", \"7492374983274234\" };\n```\n\nAll users with UIDs matching the added UIDs will be able to access debug console in Multiplayer.\nAdditionally, server host will also be able to use debug console, as well as any logged in admin on dedicated server."},{"heading":"Mod support","level":4,"markdown":"Since Arma 3 v1.72 it is possible to configure debug console availability with a mod param `enableDebugConsole`.\nThis param is checked if no debug console option is set in the mission.\nIf a server admin would like to make debug console available for a group of trusted people, he can create a custom mod, for example with `enableDebugConsole = 2;` then sign it and distribute it amongst trusted people.\nThis way anyone who has this custom mod signed with correct signature, will be able to connect to the server and use debug console.\nArray of UIDs is also supported here.\n\nTo whitelist (multiple) users with a mod, if *enableDebugConsole* has already been defined, use the delete keyword:\n\n```cpp\ndelete enableDebugConsole;\nenableDebugConsole[] = { \"81273982178973213\" };\n```"},{"heading":"Order of Precedence","level":4,"markdown":"1. Mission param is checked. If it is not defined then...\n1. description.ext param `enableDebugConsole` is checked. If is not defined then...\n1. Eden attribute option is checked. If not defined then...\n1. Global/mod param `enableDebugConsole` is checked."},{"heading":"BattlEye Filters","level":4,"markdown":"Debug Console uses Remote Execution. If you wish to exclude Debug Console execution from BE Filters, add this to your `remoteexec.txt`\n\n```\n!=\"BIS_fnc_debugConsoleExec \\[[0-2],\\{.*\\}\\]\"\n```"},{"heading":"Features","level":3,"markdown":"> [!NOTE]\n> You can clear large amounts of text from the expression field or a watch field by selecting the field and pressing <kbd>Ctrl</kbd> + <kbd>A</kbd> and then <kbd>Del</kbd>."},{"heading":"Expression field","level":4,"markdown":"- The expression is saved when the debug console is closed and restored again upon return.\n- Arma 3 v1.74 Comments with `//` are supported (use <kbd>⇧ Shift</kbd> + <kbd>Return ↵</kbd> to start a new line).\n- The expression can be executed in the unscheduled environment using the following buttons:\n  - Local - execute on player's computer using remoteExec to call the given code.\n  - Global - execute on all computers using remoteExec to call the given code. Only enabled in MP.\n  - Server - execute only on the server using remoteExec to call the given code. Only enabled in MP.\n  - Performance Test - See: diag_codePerformance"},{"heading":"4x Watch field","level":4,"markdown":"- The expression is saved when the debug console is closed and restored again upon return.\n- When the code is taking too long to evaluate (>0.003s), the background turns orange and the value is not saved.\n- Watch field execution is paused when the user edits the watch expression and resumed on change of focus or when pressing <kbd>Return ↵</kbd>."},{"heading":"Execution result field (Arma 3 v1.74)","level":4,"markdown":"- The execution result field shows result of local execution of the expression code.\n- In MP the execution result field shows remote result for server execution."},{"heading":"Expression History","level":4,"markdown":"The debug console will keep track of the last ten expressions which were executed.\nOne can use <kbd>↟ PgUp</kbd> and <kbd>↡ PgDown</kbd> to cycle through them."},{"heading":"Buttons","level":4,"markdown":"All of the following buttons close the pause menu and open another window.\n\n- Spectator Camera\n- Arma 3: Splendid Camera\n- Functions Viewer\n- Config Viewer\n- Animation Viewer\n- User Interface Editor"},{"heading":"Profile Saving","level":4,"markdown":"The debug console automatically saves each field as you go, even after game restart.\nThese can also be access using profileNamespace getVariable with the following code:\n\n- **Expression Field**\n\n  ```sqf\n  profileNamespace getVariable \"rscdebugconsole_expression\";\n  ```\n- **4x Watch Field**\n\n  ```sqf\n  profileNamespace getVariable \"rscdebugconsole_watch1\";\n  profileNamespace getVariable \"rscdebugconsole_watch2\";\n  profileNamespace getVariable \"rscdebugconsole_watch3\";\n  profileNamespace getVariable \"rscdebugconsole_watch4\";\n  ```\n\nUsing the same variables you can also clear or change the fields."},{"heading":"Utilities","level":3,"markdown":"In order to access Arma 3: Utilities from debug console, type `utils` in the debug console and press local exec.\nTo go directly to the utility of your choice use `utils n`, where `n` is the number of the utility in the list.\nFor example `utils 2` will take you to config browser."},{"heading":"See Also","level":3,"markdown":"- Debugging Techniques"}],"categories":["2D Editor","Arma 3: Editing","Introduced with Arma 3 version 0.54"],"groups":["Mission Editing"]}