|
|
(85 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| {{SideTOC}}
| | [[Category: Sandbox]] |
| [[Debugging Techniques]] are ways in which developers can debug, or find out where errors or unexpected outcomes are occurring within their scripts. | | {{Feature|informative|To go on [[Initialisation Order]].}} |
| {{note|Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system – ''[https://en.wikipedia.org/w/index.php?title{{=}}Debugging Wikipedia - Debugging]''}} | |
|
| |
|
| == Code == | | {| class="wikitable sortable align-center align-left-col-1" |
| | |+ Order of Initialisation (use column sorting for respective machine order) |
| | ! rowspan="2" class="unsortable" style="text-align: center" | Task |
| | ! rowspan="2" | Exec Environment |
| | ! rowspan="1" colspan="5" class="unsortable" | Machine |
| | |- |
| | ! Single Player |
| | ! Dedicated Server |
| | ! Hosted Server |
| | ! Multiplayer Client |
| | ! [[Multiplayer Scripting#Join In Progress|JIP]] MP Client |
|
| |
|
| Various links about code and how to write it:
| | |- |
| * [[SQF syntax]]
| | | [[Arma 3: Functions Library|Functions]] with <syntaxhighlight lang="cpp" inline>recompile</syntaxhighlight> {{Link|Arma 3: Functions Library#Attributes 3|attribute}} are recompiled |
| * [[SQS syntax]]
| | | {{n/a}} |
| * [[Code Optimisation]]
| | | 1 <!-- Single Player --> |
| | | 1 <!-- Dedicated Server --> |
| | | 1 <!-- Hosted Server --> |
| | | 1 <!-- Multiplayer Client --> |
| | | 1 <!-- JIP MP Client --> |
|
| |
|
| === IDE and Syntax Highlight === | | |- |
| | | [[Arma 3: Functions Library|Functions]] with <syntaxhighlight lang="cpp" inline>preInit</syntaxhighlight> {{Link|Arma 3: Functions Library#Attributes 3|attribute}} are called |
| | | [[Scheduler#Unscheduled Environment|Unscheduled]] |
| | | 2 <!-- Single Player --> |
| | | 2 <!-- Dedicated Server --> |
| | | 2 <!-- Hosted Server --> |
| | | 2 <!-- Multiplayer Client --> |
| | | 2 <!-- JIP MP Client --> |
|
| |
|
| Syntax errors can be a frequent occurrence when developing scripts. '''Syntax highlight''' will help you find typos in commands and in your scripts.<br />
| | |- |
| An '''I'''ntegrated '''D'''evelopment '''E'''nvironment, shortened to '''IDE''' is as its name says a development environment program, providing among other things '''syntax highlight''' and '''autocompletion''', helping you writing code.<br />
| | | Object Init Event Handlers are called |
| <br /> | | | [[Scheduler#Unscheduled Environment|Unscheduled]] |
| See further [[#Debugging Tools|Debugging Tools]] page section for download links.
| | | 3 <!-- Single Player --> |
| | | 3 <!-- Dedicated Server --> |
| | | 3 <!-- Hosted Server --> |
| | | 3 <!-- Multiplayer Client --> |
| | | {{Icon|unchecked}} <!-- JIP MP Client --> |
|
| |
|
| === Errors === | | |- |
| | | Expressions of [[Eden Editor: Configuring Attributes|Eden Editor entity attributes]] are called<ref name="isPlayer"><sqf inline>isPlayer _entity</sqf> does not return [[true]] immediately. Once the entity has become a [[player]], it is transferred to the client.</ref> |
| | | [[Scheduler#Unscheduled Environment|Unscheduled]] |
| | | 4 <!-- Single Player --> |
| | | 4 <!-- Dedicated Server --> |
| | | 4 <!-- Hosted Server --> |
| | | {{Icon|unchecked}} <!-- Multiplayer Client --> |
| | | {{Icon|unchecked}} <!-- JIP MP Client --> |
|
| |
|
| An error in SQF '''will''' purely and simply '''halt''' the current script, leading to unpredictable behaviour.
| | |- |
| An error is not something that should happen, as it can hinder performance as well as break a mission. So if you encounter one, do not overlook it by saying "it's a minor one"; your script '''will''' stop.
| | | Object initialisation fields are called |
| | | [[Scheduler#Unscheduled Environment|Unscheduled]] |
| | | 5 <!-- Single Player --> |
| | | 5 <!-- Dedicated Server --> |
| | | 5 <!-- Hosted Server --> |
| | | 4 <!-- Multiplayer Client --> |
| | | 3 <!-- JIP MP Client --> |
|
| |
|
| === Finding Errors === | | |- style="background-color: #95F0AD" |
| | | [[Event Scripts#init.sqs|init.sqs]] is executed |
| | | |
| | | 6 <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| Debugging is usually as complicated as writing the actual code itself. You usually get hinted by the game, where some error happened, and what it was.<br />
| | |- style="background-color: #95F0AD" |
| There are instances where actual error reason might be something completely different than announced (eg. you get the error on a variable being [[nil]] somewhere, but the actual error is that you mistyped it where you set it initially).
| | | [[Event Scripts#init.sqf|init.sqf]] is executed |
| | | [[Scheduler#Scheduled Environment|Scheduled]]<ref name="enginewaits">Note '''in single player''' that while the environment is [[Scheduler#Scheduled Environment|Scheduled]] ([[canSuspend]] returns true), the engine seems to wait until the script is done executing, essentially behaving similarly to an [[Scheduler#Unscheduled Environment|Unscheduled environment]] - infinite loops will freeze the game, [[uiSleep]] may pause the game for up to ~20s (postInit), [[waitUntil]] can cause catastrophic issues, etc.</ref> |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| {{Important|You need to enable ''Show Script Errors'' in the Launcher (for {{arma3}}) or set the corresponding [[Arma_3_Startup_Parameters|-showScriptErrors]] executable flag.}}
| | |- |
| | | Expressions of [[Eden Editor: Configuring Attributes|Eden Editor scenario attributes]] are called<ref name="playerCommandNotAvailable">[[player]] is not available immediately.</ref> |
| | | [[Scheduler#Unscheduled Environment|Unscheduled]] |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| A script error will greet you with this box:
| | |- style="background-color: #95DEF0" |
| [[File:A3_ScriptErrorMsg.jpg|thumb|Script error message|center|500px]]
| | | Persistent functions are called |
| | | |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| It tells you what went wrong, shows a snippet of the code that failed and, unless you used a command combination like eg. {{Inline code|[[compile]] [[loadFile]]}}, what file and line it occured on.
| | |- |
| Knowing this, you now can proceed to find the actual reason why that specific piece of code errored.
| | | [[Modules]] are initialised |
| | | | |
| {{informative|This information can also be found in the RPT log.}}
| | | <!-- Single Player --> |
| | | | <!-- Dedicated Server --> |
| To solve an issue, you must first find out there is one. Besides your script not having the wanted effect (if any), an error message helps you locate the code issue.
| | | <!-- Hosted Server --> |
| * Be sure to use [[Arma 3 Startup Parameters#Developer Options|<tt>-showScriptErrors</tt> startup parameter]] to display the error on-screen
| | | <!-- Multiplayer Client --> |
| * To ensure error location in your script, prefer [[preprocessFileLineNumbers]] to [[preprocessFile]]
| | | {{Icon|unchecked}} <!-- JIP MP Client --> |
| * Read [[Crash Files|RPT files]] for more information (make sure [[Arma 3 Startup Parameters#Performance|<tt>-noLogs</tt> startup parameter]] is '''not''' enabled or the logs will never be filled)
| |
| ** Scripts running on a server use the '''Arma''X''Server.RPT''' file which has varying location depending upon the type of server being run.
| |
| ** Scripts running on a client use the '''Arma''X''.RPT''' file.
| |
|
| |
|
| | |- style="background-color: #DEF0AD" |
| | | [[Event Scripts#initServer.sqf|initServer.sqf]] is executed |
| | | [[Scheduler#Scheduled Environment|Scheduled]] |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | {{n/a}} <!-- Multiplayer Client --> |
| | | {{n/a}} <!-- JIP MP Client --> |
|
| |
|
| ==== RPT files ==== | | |- style="background-color: #DEF0AD" |
| An [[arma.RPT|RPT]] (or [[Crash Files|crash file]]) is the game's log file; it will dump debug information as well as encountered errors.
| | | [[Event Scripts#initPlayerLocal.sqf|initPlayerLocal.sqf]] is executed |
| One can also dump information in it by using commands like [[diag_log]].
| | | [[Scheduler#Scheduled Environment|Scheduled]] |
| | | <!-- Single Player --> |
| | | {{n/a}} <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| {{Important|The RPT file might be disabled using the Arma 3 launcher or by setting the corresponding [[Arma_3_Startup_Parameters|-noLogs]] flag ({{arma3}} or {{arma2oa}} option)}}
| | |- style="background-color: #DEF0AD" |
| | | [[Event Scripts#initPlayerServer.sqf|initPlayerServer.sqf]] is executed on the server |
| | | [[Scheduler#Scheduled Environment|Scheduled]] |
| | | <!-- Single Player --> |
| | | {{n/a}} <!-- Dedicated Server --> |
| | | ?? <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| {|class="bikitable"
| |
| |+ RPT File location per game (See [[Crash Files]] for more information)
| |
| !Game
| |
| !Location
| |
| !Files
| |
| |-
| |
| | {{GVI|arma3|1.00}} {{arma3}}
| |
| | <code>'''%localappdata%'''\Arma 3</code>
| |
| | <code>Arma3_x64_yyyy-mm-dd_hh-mm-ss.rpt</code>
| |
| |-
| |
| | {{GVI|arma2|1.00}} {{arma2}}
| |
| | <code>'''%localappdata%'''\ArmA 2</code>
| |
| | <code>arma2.rpt</code>
| |
| |-
| |
| | {{GVI|arma|1.00}} {{arma}}
| |
| | <code>'''%localappdata%'''\ArmA</code>
| |
| | <code>arma.rpt</code>
| |
| |- | | |- |
| | {{GVI|ofp|1.00}} {{ofp}} | | | [[Arma 3: Functions Library|Functions]] with <syntaxhighlight lang="cpp" inline>postInit</syntaxhighlight> {{Link|Arma 3: Functions Library#Attributes 3|attribute}} are called |
| | <code>'''''OFP root directory'''''</code> | | | [[Scheduler#Scheduled Environment|Scheduled]]<ref name="enginewaits"/> |
| | <code>flashpoint.rpt<br />context.bin</code> | | | <!-- Single Player --> |
| |} | | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| | |- style="background-color: #95DEF0" |
| | | [[Event Scripts#init.sqs|init.sqs]] is executed |
| | | [[Scheduler#Scheduled Environment|Scheduled]] |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| === Solving Errors === | | |- style="background-color: #95DEF0" |
| | | [[Event Scripts#init.sqf|init.sqf]] is executed |
| | | [[Scheduler#Scheduled Environment|Scheduled]] |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| Once the script error is located: '''be sure to check the BiKi page corresponding to the command/function you are using!!'''
| | |- |
| | | | [[remoteExec]]'s [[Multiplayer Scripting#Join In Progress|JIP]] queue |
| The most simple thing you can do is to output expected values. This can be done using for example [[diag_log]] or [[systemChat]].
| | | {{n/a}} |
| Output yourself a few [[Variables|variables]] that relate to your problem (for example: When the error occurs because you land in some [[if]] block, output the corresponding variables inside of the if).
| | | {{n/a}} <!-- Single Player --> |
| You continue doing this until you hit the actual problem: When [[Variables|variable]] A is not set, go to where [[Variables|variable]] A gets set and check around there, repeat and continue.
| | | {{n/a}} <!-- Dedicated Server --> |
| | | | {{n/a}} <!-- Hosted Server --> |
| The same can be done for non-critical errors like when a method is "just" computing the wrong values.
| | | {{n/a}} <!-- Multiplayer Client --> |
| | | | 42 <!-- JIP MP Client --> |
| {{Informative| | |
| If you're having great difficulty solving a problem, the good way is to bring the issue to the simplest code;
| |
| take the mission part that doesn't work, paste it into a new test mission and work from here.
| |
| Doing so will save you dealing with other scripts' potential side effects!}}
| |
|
| |
|
| | |- style="background-color: #EEE" |
| | | ''Scenario going'' |
| | | {{n/a}} |
| | | <!-- Single Player --> |
| | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
|
| |
|
| ==== Common errors ====
| |
| {| class="bikitable sortable"
| |
| !Error message
| |
| !Cause
| |
| !Solution
| |
| |- | | |- |
| |<tt>Error Undefined variable in expression: _varName</tt> | | | [[Event Scripts#exit.sqf|exit.sqf]] |
| |variable ''_varName'' has not been initialised properly in this context. | |
| <code>[[hint]] _nonExistentVar;</code>
| |
| | | | | |
| * in the case of a [[spawn]]ed code, previous local variables are '''not''' accessible and must be passed as arguments in order to access them.
| | | <!-- Single Player --> |
| * a variable may have been ''undefined'' ({{Inline code|_varName {{=}} [[nil]]}}). Unset it ''after'' you are done using it.
| | | <!-- Dedicated Server --> |
| |- | | | <!-- Hosted Server --> |
| |<tt>Error x elements provided, y is expected</tt> | | | <!-- Multiplayer Client --> |
| |A wrong number of arguments in array was provided | | | <!-- JIP MP Client --> |
| <code>_unit [[setPos]] [0]; {{codecomment|// [[setPos]] only takes an array of 2 to 3 elements}}</code> | | |
| |rowspan="2" align="center"|'''Read the wiki about said command'''.<br /><br />Use [[typeName]] to output a variable type and compare it to the command's wiki page. | |
| |-
| |
| |<tt>Error type x, expected y</tt>
| |
| |An ill-typed argument was provided.
| |
| <code>[[hint]] 5; {{codecomment|// must be [[String]] or [[Structured Text]], [[Number]] provided}}</code>
| |
| |- | | |- |
| |rowspan="2"|<tt>Error Zero divisor</tt> | | | [[Event Scripts#exit.sqs|exit.sqs]] |
| |Pretty self-explanatory, somewhere in your code is a division by zero.
| |
| <code>[[private]] _number = 0;
| |
| [[private]] _result = 100/_number;</code>
| |
| | | | | |
| * Make sure to check that your divisor is different from zero before dividing.
| | | <!-- Single Player --> |
| <code>[[private]] _result = [100, 100/_number] [[select]] (_number != 0);</code> | | | <!-- Dedicated Server --> |
| | | <!-- Hosted Server --> |
| | | <!-- Multiplayer Client --> |
| | | <!-- JIP MP Client --> |
| | |
| |- | | |- |
| |Also happens when using an invalid [[select]] index. | | | {{Link|Arma 3: Mission Event Handlers#Ended|"Ended" Mission Event Handler}} |
| <code>["a","b","c"] [[select]] 20; {{codecomment|// index can only be 0, 1 or 2}}</code>
| |
| | | | | |
| * Ensure your [[select]] happens within the array boundaries.
| | | <!-- Single Player --> |
| * use [[selectRandom]] to pick a random item in an array.
| | | <!-- Dedicated Server --> |
| |- | | | <!-- Hosted Server --> |
| |<tt>Local variable in global space</tt> | | | <!-- Multiplayer Client --> |
| |An attempt to [[private]] a public variable
| | | <!-- JIP MP Client --> |
| <code>[[private]] "myVar"; {{codecomment|// should be "_myVar"}}</code>
| | |
| |Replace public variable usage with private variables.
| |
| |-
| |
| |rowspan="2"|<tt>Error Generic error in expression</tt>
| |
| |A [[sleep]]/[[uiSleep]]/[[waitUntil]] command has been used in an [[Scheduler#Unscheduled Environment|unscheduled environment]]. | |
| <code>[[player]] [[addEventHandler]] ["Fired", { [[sleep]] 1; [[hint]] "bang"; }];</code> | |
| | | |
| * Do '''not''' use such suspending commands in unscheduled environment; a common workaround could be:
| |
| <code>[[private]] _t = [[time]] + 5; {{codecomment|// having to wait for 5 seconds}} | |
| [[waitUntil]] { [[time]] > _t };</code>
| |
| * [[spawn]] code:
| |
| <code>[[player]] [[addEventHandler]] ["Fired", { [] spawn { [[sleep]] 1; [[hint]] "bang"; }; }];</code>
| |
| |- | | |- |
| |Further code reading is required. | | | {{Link|Arma 3: Mission Event Handlers#MPEnded|"MPEnded" Mission Event Handler}} |
| | | | | |
| * cut your code in smaller pieces and locate the concerned line(s).
| | | <!-- Single Player --> |
| |} | | | <!-- Dedicated Server --> |
| | | | <!-- Hosted Server --> |
| === Working with Addons ===
| | | <!-- Multiplayer Client --> |
| If you are working on an addon, repacking a PBO can be time-intensive.
| | | <!-- JIP MP Client --> |
| This operation can be replaced simply by creating a basic mission in the "Missions" or "MPmissions" (if your feature is multiplayer-specific) folder of your game installation, and running the mission locally.
| |
| The easiest way of accomplishing this is by the use of [[Event Scripts]] to run your code such as [[init.sqf]].
| |
| Once you have tested your code this way, you can then sequentially pack your PBO when major changes have been made, rather than for each debug session of a script or piece of code.
| |
| | |
| === Debugging specific sections of code ===
| |
|
| |
|
| Although primitive, the combined use of [[diag_log]], [[systemChat]]/[[hint]] and [[format]] can help to debug the content of function arguments.
| |
| In the case that specific pieces of code do not run, or if specific ''if'' conditions don't appear to fire, debugging the variable content with [[diag_log]] can be useful.
| |
| As with all debugging, as long as the developer is methodical and logical in checking each section of code that runs, finding bugs and resolving them can be straightforward.
| |
|
| |
|
| |
| == Debugging Tools ==
| |
|
| |
| {| class="bikitable sortable"
| |
| ! Game
| |
| ! User
| |
| ! Addon/Toolname
| |
| ! Category
| |
| ! Description
| |
| ! Link
| |
| |-
| |
| |''N/A''
| |
| |[https://forums.bohemia.net/profile/797692-sanjo/ Sanjo]
| |
| |Notepad++ SQF
| |
| |Text editor plugin - Notepad++
| |
| |[https://notepad-plus-plus.org/download/ Notepad++] SQF Syntax highlighter plugin. [http://www.armaholic.com/page.php?id=8680 Forum post]
| |
| |[https://github.com/Sanjo/npp-sqf Download]
| |
| |-
| |
| |''N/A''
| |
| |[https://forums.bohemia.net/profile/1110763-k-town/ K-Town]
| |
| |Arma IntelliJ plugin
| |
| |IDE plugin - IntelliJ
| |
| |[https://forums.bohemia.net/forums/topic/190427-arma-intellij-plugin-smart-editing-for-header-and-sqf-files/ Forum post]
| |
| |[https://github.com/kayler-renslow/arma-intellij-plugin/releases Download]
| |
| |-
| |
| |''N/A''
| |
| |[https://forums.bohemia.net/profile/804281-armitxes/ Armitxes]
| |
| |SQF Language
| |
| |IDE plugin - Visual Studio Code
| |
| |[https://forums.bohemia.net/forums/topic/182917-vs-code-~-sqf-visual-studio-code-sqf-language/ Forum post]
| |
| |[https://marketplace.visualstudio.com/items?itemName=Armitxes.sqf Download]
| |
| |-
| |
| |''N/A''
| |
| |ole1986
| |
| |Arma Dev
| |
| |IDE plugin - Visual Studio Code
| |
| |
| |
| |[https://marketplace.visualstudio.com/items?itemName=ole1986.arma-dev Download]
| |
| |-
| |
| |''N/A''
| |
| |[https://forums.bohemia.net/profile/757308-skacekachna/ SkaceKachna]
| |
| |SQFLint
| |
| |IDE plugin - Visual Studio Code
| |
| |[https://forums.bohemia.net/forums/topic/194417-sqflint-syntax-error-checker-cli/ Forum post]
| |
| |[https://marketplace.visualstudio.com/items?itemName=skacekachna.sqflint Download]
| |
| |-
| |
| |''N/A''
| |
| |[https://forums.bohemia.net/profile/1044335-krzmbrzl/ krzmbrzl]
| |
| |SQDev
| |
| |IDE plugin - Eclipse
| |
| |Provides code validation (linting) while you are typing it. [https://forums.bohemia.net/forums/topic/202181-sqdev-sqf-developing-in-eclipse/ Forum post]
| |
| |[https://github.com/Krzmbrzl/SQDev Download]
| |
| |-
| |
| |''N/A''
| |
| |[[User:Sbsmac|Sbsmac]]
| |
| |Squint
| |
| |IDE
| |
| |Provides a fully-featured code editor which allows for syntax highlighting, displaying of errors and code correction. [https://forums.bohemia.net/forums/topic/101921-squint-the-sqf-editor-and-error-checker/ Forum post]
| |
| |[https://sites.google.com/site/macsarmatools/squint Download]
| |
| |-
| |
| |''N/A''
| |
| |[[User:X39|X39]]
| |
| |SQF VM
| |
| |Emulator
| |
| |[https://forums.bohemia.net/forums/topic/210118-sqf-vm-an-sqf-emulator/ Forum post]
| |
| |[https://github.com/SQFvm/vm Download]
| |
| |-
| |
| |''N/A''
| |
| |[[User:Dedmen|Dedmen]]
| |
| |Arma Script Profiler
| |
| |Tool
| |
| |[https://forums.bohemia.net/forums/topic/211626-arma-script-profiler/ Forum post]
| |
| |[https://github.com/dedmen/ArmaScriptProfiler/ Download]
| |
| |-
| |
| |''N/A''
| |
| |[[User:Dedmen|Dedmen]]
| |
| |Arma Debug Engine
| |
| |Tool
| |
| |[https://steamcommunity.com/sharedfiles/filedetails/?id=1585582292 Workshop link]
| |
| |[https://github.com/dedmen/ArmaDebugEngine/ Download]
| |
| |-
| |
| |{{GVI|arma3|1.00}}
| |
| |[[Bohemia_Interactive|Bohemia Interactive]]
| |
| | ''N/A''
| |
| |Debug console
| |
| |Debug Console capable of executing code and more.
| |
| |[[Mission Editor: Debug Console (Arma 3)|Wiki page]]
| |
| |-
| |
| |{{GVI|arma3|1.00}}
| |
| |[[User:Kju|Kju]]
| |
| |DevCon
| |
| |Debug console
| |
| |
| |
| |[https://forums.bohemia.net/forums/topic/140287-devcon-the-developer-console/ Download]
| |
| |-
| |
| |{{GVI|tkoh|1.00}}
| |
| |[[Bohemia_Interactive|Bohemia Interactive]]
| |
| | ''N/A''
| |
| |Debug console
| |
| |Debug Console capable of executing code and more.
| |
| |[[Mission Editor: Debug Console (Take On Helicopters)|Wiki page]]
| |
| |-
| |
| |{{GVI|arma2|1.00}}
| |
| |[[User:Kju|Kju]]
| |
| |DevCon
| |
| |Debug console
| |
| |
| |
| |[http://forums.bistudio.com/showthread.php?t=126249 Download]
| |
| |-
| |
| |{{GVI|arma2|1.00}}
| |
| |[https://forums.bohemia.net/profile/761667-charon-productions/ Charon Productions]
| |
| |TroopMon v3
| |
| |Debug system
| |
| |Debugging system containing informations relevant to mission-makers (especially about AI)
| |
| |[http://www.armaholic.com/page.php?id=19898 Download]
| |
| |-
| |
| |{{GVI|arma2|1.00}}
| |
| |[[User:Str|Str]]
| |
| |
| |
| |Debug console
| |
| |
| |
| |[http://temp.moricky.com/arma2/stra_debug2.rar Download]
| |
| |-
| |
| |{{GVI|arma|1.00}}
| |
| |[https://forums.bohemia.net/profile/761667-charon-productions/ Charon Productions]
| |
| |TroopMon v0.8b
| |
| |Debug system
| |
| |Complex debugging system providing lots of information for mission-makers, especially about AI.
| |
| |[http://www.armaholic.com/page.php?id=727 Download]
| |
| |-
| |
| |{{GVI|arma|1.00}}
| |
| |[[User:Str|Str]]
| |
| |
| |
| |Debug console
| |
| |available in all singleplayer missions, intros and outros. Easy and simple to use (Escape-Enter execute)
| |
| |[http://www.armaholic.com/page.php?id=549 Download]
| |
| |} | | |} |
|
| |
|
|
| |
|
| <!--
| | == See Also == |
| |{{GVI|arma|1.00}}
| |
| |[[User:Vektorboson|Vektorboson]]
| |
| |
| |
| |Debug console
| |
| |
| |
| |<s>[http://home.arcor.de/vektorboson/res/console_3.7z '''''DEAD LINK''''']</s>
| |
| |-
| |
| |{{GVI|arma2|1.00}}
| |
| |Chain of Command
| |
| |Binary gamefile viewer
| |
| |Tool
| |
| |Allows to check variables and script states in save files
| |
| |<s>[http://ofp.gamepark.cz/index.php?showthis=6989&newlang=eng '''''DEAD LINK''''']</s>
| |
| -->
| |
| | |
| | |
| [[Category:Operation Flashpoint: Editing]]
| |
| [[Category:ArmA: Editing]]
| |
| [[Category:ArmA 2: Editing]]
| |
| [[Category:Take_On Helicopters: Editing]]
| |
| [[Category:Arma 3: Editing]]
| |
| [[Category:Scripting Topics]]
| |
| | |
|
| |
|
| [[Category:Sandbox]] | | * [[Arma 3: Functions Library]]<!-- |
| | * [[Arma 2: Functions Library]] --> |
| | * [[Arma 3: Remote Execution]], [[BIS_fnc_MP]] <!-- keep? --> |
| | * [[Eden Editor: Configuring Attributes|Eden Editor: Configuring Attributes]] |
| | * [[Event Scripts]] |
| | * [[Scheduler]] |