<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Lua_CMDs</id>
	<title>Lua CMDs - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Lua_CMDs"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_CMDs&amp;action=history"/>
	<updated>2026-04-21T04:14:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Lua_CMDs&amp;diff=457&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_CMDs&amp;diff=457&amp;oldid=prev"/>
		<updated>2025-11-13T01:50:58Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:50, 12 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Lua_CMDs&amp;diff=456&amp;oldid=prev</id>
		<title>interwiki3&gt;Thinksome: bad argument #2 to &#039;GetCommandQueue&#039; (number expected, got no value)</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_CMDs&amp;diff=456&amp;oldid=prev"/>
		<updated>2019-05-10T17:00:09Z</updated>

		<summary type="html">&lt;p&gt;bad argument #2 to &amp;#039;GetCommandQueue&amp;#039; (number expected, got no value)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Engine_Development|Development]] &amp;lt; [[Lua_Scripting|Lua Scripting]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&amp;lt;b id=CMD.OPT_ALT&amp;gt;CMD.OPT_ALT&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.OPT_CTRL&amp;gt;CMD.OPT_CTRL&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.OPT_SHIFT&amp;gt;CMD.OPT_SHIFT&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.OPT_RIGHT&amp;gt;CMD.OPT_RIGHT&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.OPT_INTERNAL&amp;gt;CMD.OPT_INTERNAL&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.OPT_META&amp;gt;CMD.OPT_META&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Waitcodes ==&lt;br /&gt;
&amp;lt;b id=CMD.WAITCODE_TIME&amp;gt;CMD.WAITCODE_TIME&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.WAITCODE_DEATH&amp;gt;CMD.WAITCODE_DEATH&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.WAITCODE_SQUAD&amp;gt;CMD.WAITCODE_SQUAD&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.WAITCODE_GATHER&amp;gt;CMD.WAITCODE_GATHER&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Insert/Remove Commands ==&lt;br /&gt;
To get the commandqueue use the following lua-call&lt;br /&gt;
&lt;br /&gt;
=== CommandQueues ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.GetUnitCommands&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.GetCommandQueue&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;(Alias)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number unitID, number count ) -&amp;gt; nil | number commandQueueSize {{new|96}}&lt;br /&gt;
  -&amp;gt; nil | table commandQueueTable = {&lt;br /&gt;
     [1] = {&lt;br /&gt;
       &amp;quot;id&amp;quot;      = number,&lt;br /&gt;
       &amp;quot;params&amp;quot;  = { [1] = number, ...},&lt;br /&gt;
       &amp;quot;options&amp;quot; = {&lt;br /&gt;
         &amp;quot;coded&amp;quot;    = number,&lt;br /&gt;
         &amp;quot;alt&amp;quot;      = boolean,&lt;br /&gt;
         &amp;quot;ctrl&amp;quot;     = boolean,&lt;br /&gt;
         &amp;quot;shift&amp;quot;    = boolean,&lt;br /&gt;
         &amp;quot;right&amp;quot;    = boolean,&lt;br /&gt;
         &amp;quot;internal&amp;quot; = boolean,&lt;br /&gt;
         &amp;quot;meta&amp;quot;    = boolean&lt;br /&gt;
       }&lt;br /&gt;
     }, ...&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Use count = -1 to get all commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=note&amp;gt;First, said &amp;quot;tags&amp;quot; aka &amp;quot;id&amp;quot; are unique command identifiers, so each command that gets inserted into a unit&amp;#039;s command &lt;br /&gt;
queue gets its unique &amp;quot;tag&amp;quot; number. (It is used to &amp;#039;&amp;#039;sync&amp;#039;&amp;#039; command queue operations, also it makes things much easier.)&lt;br /&gt;
Editors Note: I fucking hate it when open source devs use the word easy. It is a clear indicator that someone spends a whole day finding out about a well hidden simple concept. Well at least we are on this journey together :)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To look at those &amp;quot;tags&amp;quot; you can do the following:&lt;br /&gt;
   local cmdQueue = Spring.GetUnitCommands(unitID, 100);&lt;br /&gt;
   if (#cmdQueue&amp;gt;0) then &lt;br /&gt;
      local cmdTag = cmdQueue[1].tag&lt;br /&gt;
      Spring.Echo(cmdTag)&lt;br /&gt;
      ..&lt;br /&gt;
   end&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b id=CMD.INSERT&amp;gt;CMD.INSERT&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  options.ALT     -&amp;gt; treat param0 as a position instead of a tag &lt;br /&gt;
  options.CONTROL -&amp;gt; use the build queue for factories &lt;br /&gt;
  params[0] = command tag or position (negative numbers to reference&lt;br /&gt;
  the back of the queue and 0 the first)&lt;br /&gt;
  params[1] = insertCmd id &lt;br /&gt;
  params[2] = insertCmd options (shift,alt,right click,etc.)&lt;br /&gt;
  params[3 ... N+2] = insertCmd params[0 ... N-1]&lt;br /&gt;
&lt;br /&gt;
  Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    Spring.GiveOrderToUnit(unitID,&lt;br /&gt;
      CMD.INSERT,&lt;br /&gt;
      {-1,CMD.ATTACK,&amp;#039;&amp;#039;CMD.OPT_SHIFT&amp;#039;&amp;#039;,&amp;#039;&amp;#039;unitID2&amp;#039;&amp;#039;},&lt;br /&gt;
      {&amp;quot;alt&amp;quot;}&lt;br /&gt;
    );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	Command structure dissection:&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;What to do with the command - in our case insert:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		&amp;#039;CMD.INSERT&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;Place in the queue to insert:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		&amp;#039;-1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;Type of command to insert:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		&amp;#039;CMD.ATTACK&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;Additional Information:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	If the unit is working down a shift queue, add it seemless into it&lt;br /&gt;
&lt;br /&gt;
		&amp;#039;CMD.OPT_SHIFT&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;TargetID or Position:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		&amp;#039;unitID2&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;The &amp;#039;-1&amp;#039; is the queue position and not a tag:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		&amp;#039;{&amp;quot;alt&amp;quot;}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  if you insert cmd in pos 2 for example the rest of commands starting&lt;br /&gt;
  from 2 will be pushed back. &lt;br /&gt;
  Ilustration: {cmdA, cmdB, cmdC, cmdD} =&amp;gt; {cmdA, cmdB, NewCmd, cmdC, cmdD}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
  Note: If you didn&amp;#039;t already notice, the command params and&lt;br /&gt;
        the command options are twisted in the array (compared to GiveOrder)!&lt;br /&gt;
  &amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
  Note2: The command options in the array/table is a number value!&lt;br /&gt;
         You have to use CMD.OPT_* in this case.&lt;br /&gt;
  &amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
  Note3: The inserted command doesn&amp;#039;t go through allowcommand callins, only CMD.INSERT does.&lt;br /&gt;
  &amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;b id=CMD.REMOVE&amp;gt;CMD.REMOVE&amp;lt;/b&amp;gt;&lt;br /&gt;
  options.ALT     -&amp;gt; use the parameters as commandIDs &lt;br /&gt;
  options.CONTROL -&amp;gt; use the build queue for factories &lt;br /&gt;
  params[0 ... N-1] = tags or commandIDs to remove&lt;br /&gt;
&lt;br /&gt;
No clues what the above mean translated, but here is a working example of how to delete a buildorder from a factory:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;   &lt;br /&gt;
 local facCmds = Spring.GetFactoryCommands(factoryID)&lt;br /&gt;
 &lt;br /&gt;
 if facCmds then -- nil check&lt;br /&gt;
	local cmd = facCmds[1]&lt;br /&gt;
	Spring.GiveOrderToUnit(factoryID, CMD.REMOVE, {i,cmd.tag}, {&amp;quot;ctrl&amp;quot;})&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Note, the CMD[] table is bidirectional. That means: CMD[CMD.STOP] := &amp;quot;CMD_STOP&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b id=CMD.STOP&amp;gt;CMD.STOP&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.WAIT&amp;gt;CMD.WAIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.TIMEWAIT&amp;gt;CMD.TIMEWAIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.NUMBER|CMDTYPE.NUMBER]]&lt;br /&gt;
&amp;lt;b id=CMD.DEATHWAIT&amp;gt;CMD.DEATHWAIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_OR_RECTANGLE|CMDTYPE.ICON_UNIT_OR_RECTANGLE]]&lt;br /&gt;
&amp;lt;b id=CMD.SQUADWAIT&amp;gt;CMD.SQUADWAIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.NUMBER|CMDTYPE.NUMBER]]&lt;br /&gt;
&amp;lt;b id=CMD.GATHERWAIT&amp;gt;CMD.GATHERWAIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.MOVE&amp;gt;CMD.MOVE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MAP|CMDTYPE.ICON_MAP]]&lt;br /&gt;
&amp;lt;b id=CMD.PATROL&amp;gt;CMD.PATROL&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MAP|CMDTYPE.ICON_MAP]]&lt;br /&gt;
&amp;lt;b id=CMD.FIGHT&amp;gt;CMD.FIGHT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MAP|CMDTYPE.ICON_MAP]]&lt;br /&gt;
&amp;lt;b id=CMD.ATTACK&amp;gt;CMD.ATTACK&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_OR_MAP|CMDTYPE.ICON_UNIT_OR_MAP]]&lt;br /&gt;
&amp;lt;b id=CMD.AREA_ATTACK&amp;gt;CMD.AREA_ATTACK&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_AREA|CMDTYPE.ICON_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.GUARD&amp;gt;CMD.GUARD&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT|CMDTYPE.ICON_UNIT]]&lt;br /&gt;
&amp;lt;b id=CMD.AISELECT&amp;gt;CMD.AISELECT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.COMBO_BOX|CMDTYPE.COMBO_BOX]]&lt;br /&gt;
&amp;lt;b id=CMD.GROUPSELECT&amp;gt;CMD.GROUPSELECT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.GROUPADD&amp;gt;CMD.GROUPADD&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.GROUPCLEAR&amp;gt;CMD.GROUPCLEAR&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.REPAIR&amp;gt;CMD.REPAIR&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_OR_AREA|CMDTYPE.ICON_UNIT_OR_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.FIRE_STATE&amp;gt;CMD.FIRE_STATE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.MOVE_STATE&amp;gt;CMD.MOVE_STATE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.SELFD&amp;gt;CMD.SELFD&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.LOAD_UNITS&amp;gt;CMD.LOAD_UNITS&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_OR_AREA|CMDTYPE.ICON_UNIT_OR_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.LOAD_ONTO&amp;gt;CMD.LOAD_ONTO&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT|CMDTYPE.ICON_UNIT]]&lt;br /&gt;
&amp;lt;b id=CMD.UNLOAD_UNITS&amp;gt;CMD.UNLOAD_UNITS&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_OR_AREA|CMDTYPE.ICON_UNIT_OR_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.UNLOAD_UNIT&amp;gt;CMD.UNLOAD_UNIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MAP|CMDTYPE.ICON_MAP]]&lt;br /&gt;
&amp;lt;b id=CMD.ONOFF&amp;gt;CMD.ONOFF&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.RECLAIM&amp;gt;CMD.RECLAIM&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_FEATURE_OR_AREA|CMDTYPE.ICON_UNIT_FEATURE_OR_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.CLOAK&amp;gt;CMD.CLOAK&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.STOCKPILE&amp;gt;CMD.STOCKPILE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON|CMDTYPE.ICON]]&lt;br /&gt;
&amp;lt;b id=CMD.DGUN&amp;gt;CMD.DGUN&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MAP|CMDTYPE.ICON_MAP]]&lt;br /&gt;
&amp;lt;b id=CMD.RESTORE&amp;gt;CMD.RESTORE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_AREA|CMDTYPE.ICON_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.REPEAT&amp;gt;CMD.REPEAT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.TRAJECTORY&amp;gt;CMD.TRAJECTORY&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.RESURRECT&amp;gt;CMD.RESURRECT&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_FEATURE_OR_AREA|CMDTYPE.ICON_UNIT_FEATURE_OR_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.CAPTURE&amp;gt;CMD.CAPTURE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_UNIT_OR_AREA|CMDTYPE.ICON_UNIT_OR_AREA]]&lt;br /&gt;
&amp;lt;b id=CMD.AUTOREPAIRLEVEL&amp;gt;CMD.AUTOREPAIRLEVEL&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.LOOPBACKATTACK&amp;gt;CMD.LOOPBACKATTACK&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.IDLEMODE&amp;gt;CMD.IDLEMODE&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.ICON_MODE|CMDTYPE.ICON_MODE]]&lt;br /&gt;
&amp;lt;b id=CMD.SET_WANTED_MAX_SPEED&amp;gt;CMD.SET_WANTED_MAX_SPEED&amp;lt;/b&amp;gt;&lt;br /&gt;
  type [[Lua_CMDs#CMDTYPE.NUMBER|CMDTYPE.NUMBER]]&lt;br /&gt;
&amp;lt;b id=CMD.SETBASE&amp;gt;CMD.SETBASE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b id=CMD.INTERNAL&amp;gt;CMD.INTERNAL&amp;lt;/b&amp;gt;&lt;br /&gt;
  used in different ways&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;A negative number means build command&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The number is -unitDefID of the unittype that this command orders to be built.&lt;br /&gt;
   This means that build orders have no convenient CMD._____ string.&lt;br /&gt;
      The command id for build orders must always be a &amp;quot;minus&amp;quot; sign &amp;lt;i&amp;gt;appended to an integer value&amp;lt;/i&amp;gt;.&lt;br /&gt;
   &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Spring.GiveOrderToUnit(unitID, &amp;lt;b&amp;gt;-(unitDefID)&amp;lt;/b&amp;gt;, {x,y,z(,facing)}, {&amp;quot;shift&amp;quot;})&amp;lt;/font&amp;gt;&lt;br /&gt;
      alternatively:&lt;br /&gt;
   &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Spring.GiveOrderToUnit(unitID, &amp;lt;b&amp;gt;-UnitDefNames[&amp;quot;unitname&amp;quot;].id&amp;lt;/b&amp;gt;, {x,y,z(,facing)}, {&amp;quot;shift&amp;quot;})&amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;lt;b&amp;gt;&amp;#039;facing&amp;#039;&amp;lt;/b&amp;gt; is an optional integer parameter that controls unit&amp;#039;s facing when placed.&lt;br /&gt;
      The values of (x,y,z) must &amp;lt;i&amp;gt;all&amp;lt;/i&amp;gt; be number values (like the number &amp;quot;0&amp;quot;), or the build order will break.&lt;br /&gt;
&lt;br /&gt;
== CommandTypes ==&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Note, the CMDTYPE[] table is bidirectional. That means: CMDTYPE[CMDTYPE.ICON] := &amp;quot;CMDTYPE_ICON&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON&amp;gt;CMDTYPE.ICON&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 0 parameters in return&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_MODE&amp;gt;CMDTYPE.ICON_MODE&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameter in return (number selected mode)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_MAP&amp;gt;CMDTYPE.ICON_MAP&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 3 parameters in return (mappos)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_AREA&amp;gt;CMDTYPE.ICON_AREA&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 4 parameters in return (mappos+radius)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_UNIT&amp;gt;CMDTYPE.ICON_UNIT&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameters in return (unitid)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_UNIT_OR_MAP&amp;gt;CMDTYPE.ICON_UNIT_OR_MAP&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameters in return (unitid) or 3 parameters in return (mappos)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_FRONT&amp;gt;CMDTYPE.ICON_FRONT&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 3 or 6 parameters in return (middle and right side of front if a front was defined)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.COMBO_BOX&amp;gt;CMDTYPE.COMBO_BOX&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameter in return (number selected option)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_UNIT_OR_AREA&amp;gt;CMDTYPE.ICON_UNIT_OR_AREA&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameter in return (unitid) or 4 parameters in return (mappos+radius)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_UNIT_FEATURE_OR_AREA&amp;gt;CMDTYPE.ICON_UNIT_FEATURE_OR_AREA&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameter in return (unitid or [[Lua_ConstGame#Engine|Game.maxUnits]]+featureid)&lt;br /&gt;
      or 4 parameters in return (mappos+radius)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_BUILDING&amp;gt;CMDTYPE.ICON_BUILDING&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 3 parameters in return (mappos)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.ICON_UNIT_OR_RECTANGLE&amp;gt;CMDTYPE.ICON_UNIT_OR_RECTANGLE&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameter in return (unitid)&lt;br /&gt;
      or 3 parameters in return (mappos)&lt;br /&gt;
      or 6 parameters in return (startpos+endpos)&lt;br /&gt;
&amp;lt;b id=CMDTYPE.NUMBER&amp;gt;CMDTYPE.NUMBER&amp;lt;/b&amp;gt;&lt;br /&gt;
  expect 1 parameter in return (number)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b id=CMDTYPE.CUSTOM&amp;gt;CMDTYPE.CUSTOM&amp;lt;/b&amp;gt;&lt;br /&gt;
  used with CMD_INTERNAL&lt;br /&gt;
&amp;lt;b id=CMDTYPE.NEXT&amp;gt;CMDTYPE.NEXT&amp;lt;/b&amp;gt; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;next command page&amp;lt;/font&amp;gt;&lt;br /&gt;
  used with CMD_INTERNAL&lt;br /&gt;
&amp;lt;b id=CMDTYPE.PREV&amp;gt;CMDTYPE.PREV&amp;lt;/b&amp;gt; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;previous command page&amp;lt;/font&amp;gt;&lt;br /&gt;
  used with CMD_INTERNAL&lt;br /&gt;
&lt;br /&gt;
== CmdIDs ==&lt;br /&gt;
Below is a table of all CMD table entries and their IDs:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Command||ID&lt;br /&gt;
|-&lt;br /&gt;
|FIRESTATE_NONE||-1&lt;br /&gt;
|-&lt;br /&gt;
|MOVESTATE_NONE||-1&lt;br /&gt;
|-&lt;br /&gt;
|STOP||0&lt;br /&gt;
|-&lt;br /&gt;
|MOVESTATE_HOLDPOS||0&lt;br /&gt;
|-&lt;br /&gt;
|FIRESTATE_HOLDFIRE||0&lt;br /&gt;
|-&lt;br /&gt;
|INSERT||1&lt;br /&gt;
|-&lt;br /&gt;
|MOVESTATE_MANEUVER||1&lt;br /&gt;
|-&lt;br /&gt;
|FIRESTATE_RETURNFIRE||1&lt;br /&gt;
|-&lt;br /&gt;
|WAITCODE_TIME||1&lt;br /&gt;
|-&lt;br /&gt;
|WAITCODE_DEATH||2&lt;br /&gt;
|-&lt;br /&gt;
|MOVESTATE_ROAM||2&lt;br /&gt;
|-&lt;br /&gt;
|REMOVE||2&lt;br /&gt;
|-&lt;br /&gt;
|FIRESTATE_FIREATWILL||2&lt;br /&gt;
|-&lt;br /&gt;
|FIRESTATE_FIREATNEUTRAL||3&lt;br /&gt;
|-&lt;br /&gt;
|WAITCODE_SQUAD||3&lt;br /&gt;
|-&lt;br /&gt;
|OPT_META||4&lt;br /&gt;
|-&lt;br /&gt;
|WAITCODE_GATHER||4&lt;br /&gt;
|-&lt;br /&gt;
|WAIT||5&lt;br /&gt;
|-&lt;br /&gt;
|TIMEWAIT||6&lt;br /&gt;
|-&lt;br /&gt;
|DEATHWAIT||7&lt;br /&gt;
|-&lt;br /&gt;
|OPT_INTERNAL||8&lt;br /&gt;
|-&lt;br /&gt;
|SQUADWAIT||8&lt;br /&gt;
|-&lt;br /&gt;
|GATHERWAIT||9&lt;br /&gt;
|-&lt;br /&gt;
|MOVE||10&lt;br /&gt;
|-&lt;br /&gt;
|PATROL||15&lt;br /&gt;
|-&lt;br /&gt;
|FIGHT||16&lt;br /&gt;
|-&lt;br /&gt;
|OPT_RIGHT||16&lt;br /&gt;
|-&lt;br /&gt;
|LOOPBACKATTACK||20&lt;br /&gt;
|-&lt;br /&gt;
|ATTACK||20&lt;br /&gt;
|-&lt;br /&gt;
|AREA_ATTACK||21&lt;br /&gt;
|-&lt;br /&gt;
|GUARD||25&lt;br /&gt;
|-&lt;br /&gt;
|AISELECT||30&lt;br /&gt;
|-&lt;br /&gt;
|OPT_SHIFT||32&lt;br /&gt;
|-&lt;br /&gt;
|GROUPSELECT||35&lt;br /&gt;
|-&lt;br /&gt;
|GROUPADD||36&lt;br /&gt;
|-&lt;br /&gt;
|GROUPCLEAR||37&lt;br /&gt;
|-&lt;br /&gt;
|REPAIR||40&lt;br /&gt;
|-&lt;br /&gt;
|FIRE_STATE||45&lt;br /&gt;
|-&lt;br /&gt;
|MOVE_STATE||50&lt;br /&gt;
|-&lt;br /&gt;
|SETBASE||55&lt;br /&gt;
|-&lt;br /&gt;
|INTERNAL||60&lt;br /&gt;
|-&lt;br /&gt;
|OPT_CTRL||64&lt;br /&gt;
|-&lt;br /&gt;
|SELFD||65&lt;br /&gt;
|-&lt;br /&gt;
|SET_WANTED_MAX_SPEED||70&lt;br /&gt;
|-&lt;br /&gt;
|LOAD_UNITS||75&lt;br /&gt;
|-&lt;br /&gt;
|LOAD_ONTO||76&lt;br /&gt;
|-&lt;br /&gt;
|UNLOAD_UNITS||80&lt;br /&gt;
|-&lt;br /&gt;
|UNLOAD_UNIT||81&lt;br /&gt;
|-&lt;br /&gt;
|ONOFF||85&lt;br /&gt;
|-&lt;br /&gt;
|RECLAIM||90&lt;br /&gt;
|-&lt;br /&gt;
|CLOAK||95&lt;br /&gt;
|-&lt;br /&gt;
|STOCKPILE||100&lt;br /&gt;
|-&lt;br /&gt;
|MANUALFIRE||105&lt;br /&gt;
|-&lt;br /&gt;
|DGUN||105&lt;br /&gt;
|-&lt;br /&gt;
|RESTORE||110&lt;br /&gt;
|-&lt;br /&gt;
|REPEAT||115&lt;br /&gt;
|-&lt;br /&gt;
|TRAJECTORY||120&lt;br /&gt;
|-&lt;br /&gt;
|RESURRECT||125&lt;br /&gt;
|-&lt;br /&gt;
|OPT_ALT||128&lt;br /&gt;
|-&lt;br /&gt;
|CAPTURE||130&lt;br /&gt;
|-&lt;br /&gt;
|AUTOREPAIRLEVEL||135&lt;br /&gt;
|-&lt;br /&gt;
|IDLEMODE||145&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[category: Lua]]&lt;/div&gt;</summary>
		<author><name>interwiki3&gt;Thinksome</name></author>
	</entry>
</feed>