<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jrb0001</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jrb0001"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Jrb0001"/>
	<updated>2026-11-08T22:26:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lua_UnsyncedCtrl&amp;diff=12319</id>
		<title>Lua UnsyncedCtrl</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lua_UnsyncedCtrl&amp;diff=12319"/>
		<updated>2017-10-06T19:22:42Z</updated>

		<summary type="html">&lt;p&gt;Jrb0001: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; [[Lua_Scripting|Lua Scripting]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
NOTE: Prior to 102.0, entries below marked &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt; require the setting ModUICtrl to be enabled in the users [[springrc]], if you want to use them in unsynced LuaRules/LuaGaia. It is enabled by default in previous versions and removed in 102.0 so you generally don&#039;t need to care.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= UI =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetLastMessagePosition&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number z ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Ingame Console =&lt;br /&gt;
&#039;&#039;&#039;Spring.Echo&#039;&#039;&#039;&lt;br /&gt;
  ( arg1 [, arg2 [, ... ] ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Useful for debugging.&amp;lt;br&amp;gt; Prints values in the spring chat console.&amp;lt;br&amp;gt; Hint: the default print() writes to STDOUT.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.Log&#039;&#039;&#039;&lt;br /&gt;
  ( string section, int logLevel | string logLevel,&lt;br /&gt;
    arg2 [, arg3 [, ... ] ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Possible values for logLevel are:&lt;br /&gt;
    &amp;quot;debug&amp;quot;   | LOG.DEBUG&lt;br /&gt;
    &amp;quot;info&amp;quot;    | LOG.INFO&lt;br /&gt;
    &amp;quot;notice&amp;quot;  | LOG.NOTICE (engine default) {{new|97}}&lt;br /&gt;
    &amp;quot;warning&amp;quot; | LOG.WARNING&lt;br /&gt;
    &amp;quot;error&amp;quot;   | LOG.ERROR&lt;br /&gt;
    &amp;quot;fatal&amp;quot;   | LOG.FATAL&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SendCommands&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string command1 [, string command2 [ ... ] ] ) -&amp;gt; nil&lt;br /&gt;
  ( {string command1, string command2, ...} ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SetActiveCommand&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string action [, string actionExtra ] ) -&amp;gt; nil | boolean&lt;br /&gt;
  ( number cmdIndex [, number button = 1&lt;br /&gt;
    [, boolean leftClick, boolean rightClick,&lt;br /&gt;
     boolean alt, boolean ctrl, boolean meta, boolean shift]] ) -&amp;gt; nil | boolean&lt;br /&gt;
&#039;&#039;&#039;Spring.LoadCmdColorsConfig&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string config ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.LoadCtrlPanelConfig&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string config ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.ForceLayoutUpdate&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawSelectionInfo&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;disables the &amp;quot;Selected Units x&amp;quot; box in the GUI&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== Mouse ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SetMouseCursor&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string cursorName [, number scale ] ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.WarpMouse&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number x, number y ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== LOS Colors ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SetLosViewColors&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=warning&amp;gt;New arguments since 100.0 (radar2 is the inside of radar edge):&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( always = {r,g,b}, LOS = {r,g,b}, radar = {r,g,b}, jam = {r,g,b}, radar2 = {r,g,b}) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=warning&amp;gt;Arguments for 99.0 and before:&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( table reds = { number always, number LOS, number radar, number jam }, &lt;br /&gt;
    table greens = { number always, number LOS, number radar, number jam },&lt;br /&gt;
    table blues = { number always, number LOS, number radar, number jam } ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== SendMessage ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SendMessage&#039;&#039;&#039;&lt;br /&gt;
  ( string &amp;quot;message&amp;quot; ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SendMessageToPlayer&#039;&#039;&#039;&lt;br /&gt;
  ( number playerID, string &amp;quot;message&amp;quot; ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SendMessageToTeam&#039;&#039;&#039;&lt;br /&gt;
  ( number teamID, string &amp;quot;message&amp;quot; ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SendMessageToAllyTeam&#039;&#039;&#039;&lt;br /&gt;
  ( number allyID, string &amp;quot;message&amp;quot; ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SendMessageToSpectators&#039;&#039;&#039;&lt;br /&gt;
  ( string &amp;quot;message&amp;quot; ) -&amp;gt; nil&lt;br /&gt;
Funfact:&lt;br /&gt;
&amp;lt;PLAYER#&amp;gt; (with # being a playerid) inside the string will be replaced with the players name.&lt;br /&gt;
ie&lt;br /&gt;
Spring.SendMessage (&amp;quot;&amp;lt;PLAYER1&amp;gt; did something&amp;quot;)&lt;br /&gt;
might display as &amp;quot;ProRusher did something&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Markers ==&lt;br /&gt;
&#039;&#039;&#039;Spring.MarkerAddPoint&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number x, number y, number z [, string text = &amp;quot;&amp;quot; [, bool localOnly] ] ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.MarkerAddLine&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number x1, number y1, number z1, number x2, number y2, number z2 ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.MarkerErasePosition&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number x, number y, number z ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Sounds =&lt;br /&gt;
&#039;&#039;&#039;Spring.LoadSoundDef&#039;&#039;&#039;&lt;br /&gt;
  ( string &amp;quot;soundfile&amp;quot; ) -&amp;gt; nil | boolean success&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;Loads a SoundDefs file, the format is the same as in `gamedata/sounds.lua`.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.PlaySoundFile&#039;&#039;&#039;  &amp;lt;span class=note&amp;gt;Plays WAV or OGG sounds.&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( string &amp;quot;soundfile&amp;quot; [, number volume = 1.0&lt;br /&gt;
    [, number posx, number posy, number posz &lt;br /&gt;
    [, number speedx, number speedy, number speedz ] ] ], [string/number &amp;lt;span class=note&amp;gt;channel&amp;lt;/span&amp;gt; ] ) -&amp;gt; nil | boolean&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;`channel` is new in Spring0.83, and can be one of those:&lt;br /&gt;
    &amp;quot;general&amp;quot; || 0 || nil (default)&lt;br /&gt;
    &amp;quot;battle&amp;quot; || &amp;quot;sfx&amp;quot; | 1&lt;br /&gt;
    &amp;quot;unitreply&amp;quot; || &amp;quot;voice&amp;quot; || 2&lt;br /&gt;
    &amp;quot;userinterface&amp;quot; || &amp;quot;ui&amp;quot; || 3&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.PlaySoundStream&#039;&#039;&#039;&lt;br /&gt;
  ( string &amp;quot;oggfile&amp;quot; [, number volume = 1.0&lt;br /&gt;
    [, bool enqueue ]] ) -&amp;gt; nil | boolean true&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;Allow you to play an Ogg Vorbis (.OGG) compressed sound file.&amp;lt;br&amp;gt; In 83.0 and up multiple sound streams may be played at once &amp;lt;/span&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Spring.StopSoundStream&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;Terminates any SoundStream currently running.&amp;lt;/span&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Spring.PauseSoundStream&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetSoundStreamVolume&#039;&#039;&#039;&lt;br /&gt;
  ( number volume ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= SendLuaMessage =&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Very important! (allows synced inter-lua-enviroment communications)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SendLuaUIMsg&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string message, string mode ) -&amp;gt; nil&lt;br /&gt;
  &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;possible modes are:&amp;lt;br&amp;gt;&amp;quot;s&amp;quot;/&amp;quot;specs&amp;quot; &amp;amp; &amp;quot;a&amp;quot;/&amp;quot;allies&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Spring.SendLuaGaiaMsg&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string message ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SendLuaRulesMsg&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string message ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= AI =&lt;br /&gt;
&#039;&#039;&#039;Spring.SendSkirmishAIMessage&#039;&#039;&#039; {{new|83.0}}&lt;br /&gt;
  ( number aiTeam, string message )&lt;br /&gt;
  -&amp;gt; nil | boolean ai_processed, { [1] = string response1, etc... }&lt;br /&gt;
&amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;Note there is nothing in this table due to &amp;quot;limitations&amp;quot; of the AI interface.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Units =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitLeaveTracks&#039;&#039;&#039; {{new|83.0}}&lt;br /&gt;
  ( number unitID, boolean leavetracks ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== Unit Selection ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SelectUnitMap&#039;&#039;&#039;&lt;br /&gt;
  ( { [unitID] = anything, ...} [,boolean append] ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SelectUnitArray&#039;&#039;&#039;&lt;br /&gt;
  ( { [1] = unitID1 , [2] = unitID2 , ...} [,boolean append] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawSelectionInfo&#039;&#039;&#039;&lt;br /&gt;
  ( boolean drawSelectionInfo ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== Unit Group ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitGroup&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, number groupID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== Give Order ==&lt;br /&gt;
&#039;&#039;&#039;Spring.GiveOrder&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;gives order to all selected units&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number cmdID,&lt;br /&gt;
    params = {number, etc...},&lt;br /&gt;
    options = {&amp;quot;alt&amp;quot;, &amp;quot;ctrl&amp;quot;, &amp;quot;shift&amp;quot;, &amp;quot;right&amp;quot;} ) -&amp;gt; nil | boolean true&lt;br /&gt;
&#039;&#039;&#039;Spring.GiveOrderToUnit&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID,&lt;br /&gt;
    number cmdID,&lt;br /&gt;
    params = {number, etc...},&lt;br /&gt;
    options = {&amp;quot;alt&amp;quot;, &amp;quot;ctrl&amp;quot;, &amp;quot;shift&amp;quot;, &amp;quot;right&amp;quot;} ) -&amp;gt; nil | boolean true&lt;br /&gt;
&#039;&#039;&#039;Spring.GiveOrderToUnitMap&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( unitMap = { [unitID] = dontCare, etc... },&lt;br /&gt;
    number cmdID,&lt;br /&gt;
    params = {number, etc...},&lt;br /&gt;
    options = {&amp;quot;alt&amp;quot;, &amp;quot;ctrl&amp;quot;, &amp;quot;shift&amp;quot;, &amp;quot;right&amp;quot;} ) -&amp;gt; nil | boolean true&lt;br /&gt;
&#039;&#039;&#039;Spring.GiveOrderToUnitArray&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( unitArray = { [1] = unitID, etc... },&lt;br /&gt;
    number cmdID,&lt;br /&gt;
    params = {number, etc...},&lt;br /&gt;
    options = {&amp;quot;alt&amp;quot;, &amp;quot;ctrl&amp;quot;, &amp;quot;shift&amp;quot;, &amp;quot;right&amp;quot;} ) -&amp;gt; nil | boolean true&lt;br /&gt;
&#039;&#039;&#039;Spring.GiveOrderArrayToUnitMap&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( unitMap = { [number unitID] = dontCare, etc... },&lt;br /&gt;
    orderArray = {&lt;br /&gt;
      { number cmdID,&lt;br /&gt;
        params = {number, etc...},&lt;br /&gt;
        options = {&amp;quot;alt&amp;quot;, &amp;quot;ctrl&amp;quot;, &amp;quot;shift&amp;quot;, &amp;quot;right&amp;quot;}&lt;br /&gt;
      }, ..&lt;br /&gt;
    }&lt;br /&gt;
  ) -&amp;gt; nil | boolean true&lt;br /&gt;
&#039;&#039;&#039;Spring.GiveOrderArrayToUnitArray&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( unitArray = { [1] = number unitID, etc... },&lt;br /&gt;
    orderArray = {&lt;br /&gt;
      { number cmdID,&lt;br /&gt;
        params = {number, etc...},&lt;br /&gt;
        options = {&amp;quot;alt&amp;quot;, &amp;quot;ctrl&amp;quot;, &amp;quot;shift&amp;quot;, &amp;quot;right&amp;quot;}&lt;br /&gt;
      }, ..&lt;br /&gt;
    },&lt;br /&gt;
    [boolean pairwise]&lt;br /&gt;
  ) -&amp;gt; nil | boolean true&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;pairwise param ({{new|89.0}}) is used to send multiple units a single individual command&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetBuildFacing&#039;&#039;&#039;&lt;br /&gt;
  ( int Facing ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetBuildSpacing&#039;&#039;&#039;&lt;br /&gt;
  ( int Spacing ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== Unit NoDraw,NoSelect,NoMinimap ==&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitNoDraw&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;LuaGadgets only!&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, boolean noDraw ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitNoSelect&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;LuaGadgets only!&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, boolean noSelect ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitNoMinimap&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;LuaGadgets only!&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, boolean noMinimap ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetFeatureFade&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( int featureID, bool allow ) -&amp;gt; nil&lt;br /&gt;
Control whether a feature will fade or not when zoomed out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetFeatureNoDraw&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;LuaGadgets only!&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number featureID, boolean noDraw ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Developers =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawSky&#039;&#039;&#039;&lt;br /&gt;
  ( boolean drawSky ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawWater&#039;&#039;&#039;&lt;br /&gt;
  ( boolean drawWater ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawGround&#039;&#039;&#039;&lt;br /&gt;
  ( boolean drawGround ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetWaterParams&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;needs cheating enabled!&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( table params ) -&amp;gt; nil&lt;br /&gt;
&amp;lt;span class=note&amp;gt;Allows to change water params (mostly BumpWater ones) at runtime. You may want to set BumpWaterUseUniforms in your [[springrc]] to 1, then you don&#039;t even need to restart BumpWater via `/water 4`.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;`params` table may contain:&lt;br /&gt;
  params = {&lt;br /&gt;
    absorb = {number r, number g, number b},&lt;br /&gt;
    baseColor = {number r, number g, number b},&lt;br /&gt;
    minColor = {number r, number g, number b},&lt;br /&gt;
    surfaceColor = {number r, number g, number b},&lt;br /&gt;
    diffuseColor = {number r, number g, number b},&lt;br /&gt;
    specularColor = {number r, number g, number b},&lt;br /&gt;
    planeColor = {number r, number g, number b},&lt;br /&gt;
    texture = string file,&lt;br /&gt;
    foamTexture = string file,&lt;br /&gt;
    normalTexture = string file,&lt;br /&gt;
    damage = number value,&lt;br /&gt;
    repeatX = number value,&lt;br /&gt;
    repeatY = number value,&lt;br /&gt;
    surfaceAlpha = number value,&lt;br /&gt;
    ambientFactor = number value,&lt;br /&gt;
    diffuseFactor = number value,&lt;br /&gt;
    specularFactor = number value,&lt;br /&gt;
    specularPower = number value,&lt;br /&gt;
    fresnelMin = number value,&lt;br /&gt;
    fresnelMax = number value,&lt;br /&gt;
    fresnelPower = number value,&lt;br /&gt;
    reflectionDistortion = number value,&lt;br /&gt;
    blurBase = number value,&lt;br /&gt;
    blurExponent = number value,&lt;br /&gt;
    perlinStartFreq = number value,&lt;br /&gt;
    perlinLacunarity = number value,&lt;br /&gt;
    perlinAmplitude = number value,&lt;br /&gt;
    numTiles = number value,&lt;br /&gt;
    shoreWaves = boolean value,&lt;br /&gt;
    forceRendering = boolean value,&lt;br /&gt;
    hasWaterPlane = boolean value,&lt;br /&gt;
  }&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetLogSectionFilterLevel&#039;&#039;&#039; {{New|95.0}}&lt;br /&gt;
   (string sectionName, string|number logLevel)&lt;br /&gt;
see [[infolog.txt]] for possible log sections (?)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawGroundDeferred&#039;&#039;&#039; {{New|95.0}}&lt;br /&gt;
    ( boolean drawGroundDeferred [, boolean drawGroundForward] ) -&amp;gt; nil&lt;br /&gt;
{{new|101.0}} {{var|drawGroundForward}} allows disabling of the forward pass&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetDrawModelsDeferred&#039;&#039;&#039; {{New|95.0}}&lt;br /&gt;
    (     boolean drawUnitsDeferred,&lt;br /&gt;
          boolean drawFeaturesDeferred&lt;br /&gt;
       [, boolean drawUnitsForward&lt;br /&gt;
       [, boolean drawFeaturesForward ]]&lt;br /&gt;
     ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
{{new|101.0}} {{var|drawFeaturesForward}}, {{var|drawUnitsForward}} allows disabling of the respective forward passes&lt;br /&gt;
&lt;br /&gt;
= GUI =&lt;br /&gt;
&#039;&#039;&#039;Spring.DrawUnitCommands&#039;&#039;&#039;&lt;br /&gt;
  ( number unitID ) -&amp;gt; nil&lt;br /&gt;
  ( { [1] = unitID, ... } [, false ] ) -&amp;gt; nil&lt;br /&gt;
  ( { [unitID] = anything, ... }, true  ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetTeamColor&#039;&#039;&#039;&lt;br /&gt;
  ( number teamID, number r, number g, number b ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.AssignMouseCursor&#039;&#039;&#039; &amp;lt;font class=note&amp;gt;changes/creates the cursor of a single CursorCmd&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string &amp;quot;cmdName&amp;quot;, string &amp;quot;iconFileName&amp;quot;&lt;br /&gt;
    [, boolean overwrite = true [, boolean hotSpotTopLeft = false] ] ) -&amp;gt; nil | boolean&lt;br /&gt;
&amp;lt;font class=note&amp;gt;Note, that iconFileName is not the full filename instead it is like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
wanted filename: Anims/cursorattack_0.bmp&amp;lt;br/&amp;gt;&lt;br /&gt;
=&amp;gt; iconFileName: cursorattack&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.ReplaceMouseCursor&#039;&#039;&#039; &amp;lt;font class=note&amp;gt;mass replace all occurrence of the cursor in all CursorCmds&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string &amp;quot;oldFileName&amp;quot;, string &amp;quot;newFileName&amp;quot; [, boolean hotSpotTopLeft = false] ) -&amp;gt; nil | boolean&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetCustomCommandDrawData&#039;&#039;&#039; &amp;lt;font class=note&amp;gt;register your custom cmd so it gets visible in the unit&#039;s cmd queue&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number cmdID,&lt;br /&gt;
    number cmdID_cloneIcon | string iconname,&lt;br /&gt;
    { number r, number g, number b, number a } [, boolean showArea ] ) -&amp;gt; nil&lt;br /&gt;
  ( number cmdID, nil) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Sharing =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetShareLevel&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;note: shareLevel is 0&amp;lt;= x &amp;lt;= 1&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string &amp;quot;metal&amp;quot; | &amp;quot;energy&amp;quot;, number shareLevel ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.ShareResources&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number teamID, string &amp;quot;units&amp;quot; ) -&amp;gt; nil&lt;br /&gt;
  ( number teamID, string &amp;quot;metal&amp;quot; | &amp;quot;energy&amp;quot;, number amount ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= UnitDef RadarIcons &amp;amp; BuildPics =&lt;br /&gt;
&#039;&#039;&#039;Spring.AddUnitIcon&#039;&#039;&#039;&lt;br /&gt;
  ( string iconName, string texFile [, number size [, number dist [, boolean radAdjust ]]] )&lt;br /&gt;
  -&amp;gt; nil | boolean&lt;br /&gt;
&#039;&#039;&#039;Spring.FreeUnitIcon&#039;&#039;&#039;&lt;br /&gt;
  ( string iconName ) -&amp;gt; nil | boolean&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitDefIcon&#039;&#039;&#039;  &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(RadarIcon)&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitDefID, string iconName ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.SetUnitDefImage&#039;&#039;&#039;   &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(BuildPic)&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitDefID, luaTexture | string texFile ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Camera =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetCameraState&#039;&#039;&#039;&lt;br /&gt;
  ( table camState, number camTime) -&amp;gt; nil | boolean&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;camState has the same format as the output of Spring.GetCameraState(). See [[Lua_camState]] for details about camState. &lt;br /&gt;
&lt;br /&gt;
The camState&#039;s mode/name must fit the rest of the state. Getting a state, changing its mode/name and then passing it to SetCameraState will have undesired results. [https://springrts.com/mantis/view.php?id=5028#c15491 Also see #5028]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetCameraTarget&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number z [,number transTime] ) -&amp;gt; nil&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetCameraOffset&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( [number px = 0 [, number py = 0 [, number pz = 0&lt;br /&gt;
     [, number tx = 0 [, number ty = 0 [, number tz = 0]]]]]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= (Virtual-)FileSystem =&lt;br /&gt;
&#039;&#039;&#039;Spring.ExtractModArchiveFile&#039;&#039;&#039;&lt;br /&gt;
  ( string modfile ) -&amp;gt; boolean&lt;br /&gt;
&#039;&#039;&#039;Spring.CreateDir&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number path ) -&amp;gt; nil | boolean&lt;br /&gt;
&lt;br /&gt;
The full VFS API is available at [[Lua_VFS|link]].&lt;br /&gt;
&lt;br /&gt;
= Engine Config =&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;The following functions read the engine configs saved in [[springrc]], a version-ed instance of these or a custom file supplied on the command line.&lt;br /&gt;
If &#039;&#039;*Overlay&#039;&#039; is &#039;&#039;true&#039;&#039;, the value will only be set in memory, and not be restored for the next game&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.GetConfigInt&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string name [, number default [, boolean setInOverlay = false]] ) -&amp;gt; nil | number&lt;br /&gt;
&#039;&#039;&#039;Spring.SetConfigInt&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string name, number value [, boolean useOverlay = false] ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.GetConfigString&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string name [, string default [, boolean setInOverlay = false]] ) -&amp;gt; nil | string&lt;br /&gt;
&#039;&#039;&#039;Spring.SetConfigString&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(needs ModUICtrl)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string name, string value [, boolean useOverlay = false] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= World Primitives =&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;outdated! use opengl api instead!&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.AddWorldIcon&#039;&#039;&#039;&lt;br /&gt;
  ( number cmdID, number x, number y, number z ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.AddWorldText&#039;&#039;&#039;&lt;br /&gt;
  ( string &amp;quot;text&amp;quot;, number x, number y, number z ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;Spring.AddWorldUnit&#039;&#039;&#039;&lt;br /&gt;
  ( number unitDefID,&lt;br /&gt;
    number x, number y, number z,&lt;br /&gt;
    number team, number facing) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Sun  =&lt;br /&gt;
The dynamic Sun must be invoked via /dynamicsun.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetSunManualControl&#039;&#039;&#039;&lt;br /&gt;
  ( boolean setManualControl ) - &amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetSunParameters&#039;&#039;&#039;&lt;br /&gt;
  ( number dirX, number dirY, number dirZ, number dist, number startTime, number orbitTime ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetSunDirection&#039;&#039;&#039;&lt;br /&gt;
  ( number dirX, number dirY, number dirZ ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetSunLighting&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( table params ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;It can be used to modify the following sun lighting parameters: &lt;br /&gt;
     {ground,unit}{Ambient,Diffuse,Specular}Color and specularExponent&lt;br /&gt;
     All Colourvalues have to in the Range from 0.0 to 1.0 for all colors and the alpha&lt;br /&gt;
     Example usage: Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} })&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetAtmosphere&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( table params ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;It can be used to modify the following atmosphere parameters:&lt;br /&gt;
     fog{Start,End}, {sun,sky,cloud}Color&lt;br /&gt;
     Example usage: Spring.SetAtmosphere({ fogStart = 0, fogEnd   = 0.5, fogColor = { 0.7, 0.2, 0.2, 1 }})&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Misc =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.Reload&#039;&#039;&#039; {{new|99.0}}&lt;br /&gt;
  ( string startscript )&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;start-script is the CONTENT of the [[script.txt]] spring should use to start.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.Restart&#039;&#039;&#039; {{new|0.79}}&lt;br /&gt;
  ( string commandline_args, string startscript )&lt;br /&gt;
    -&amp;gt; if this call returns, something went wrong&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;&#039;&#039;commandline_args&#039;&#039; are commandline arguments passed to spring executable&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;start-script is the CONTENT of the [[script.txt]] spring should use to start (if empty, no start-script is added, you can still point spring to your custom script.txt when you add the file-path to &#039;&#039;commandline_args&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetWMIcon&#039;&#039;&#039; {{new|83.0}}&lt;br /&gt;
  ( string iconFileName ) -&amp;gt; nil&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Sets the icon for the process which is seen in the OS task-bar and other places (default: spring-logo).&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: has to be 24bit or 32bit&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: on windows, it has to be 32x32 pixels in size (recommended for cross-platform)&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: &#039;&#039;*.bmp&#039;&#039; images have to be in BGR format (default for m$ ones).&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: &#039;&#039;*.ico&#039;&#039; images are not supported.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetWMCaption&#039;&#039;&#039; {{new|83.0}}&lt;br /&gt;
  ( string title [, string titleShort = title ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Sets the window &#039;&#039;title&#039;&#039; for the process (default: &amp;quot;Spring &amp;lt;version&amp;gt;&amp;quot;).&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;The &#039;&#039;shortTitle&#039;&#039; is displayed in the OS task-bar (default: &amp;quot;Spring &amp;lt;version&amp;gt;&amp;quot;).&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;&#039;&#039;&#039;NOTE:&#039;&#039;&#039; &#039;&#039;shortTitle&#039;&#039; is only ever possibly used under X11 (Linux &amp;amp; OS X), but not with QT (KDE) and never under Windows. See [http://www.gpwiki.org/index.php/SDL:Tutorials:Initializing_SDL_Libraries#About_the_icon_.28.22Icon_Title.22.29_parameter_on_different_window-managers this site] for more details.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.ClearWatchDogTimer&#039;&#039;&#039; {{new|83.0}}&lt;br /&gt;
  ( [ string threadName = main ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetClipboard&#039;&#039;&#039; {{new|98.0}}&lt;br /&gt;
  ( string text) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Rendering =&lt;br /&gt;
== Preload ==&lt;br /&gt;
Allow the engine to load the unit&#039;s model (and texture) in a background thread. Wreckages and buildOptions of a unit are automatically preloaded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.PreloadUnitDefModel&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( number unitDefID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.PreloadFetureDefModel&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( number featureDefID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
== Lighting ==&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;NOTE: these (0.83+) lighting callouts only work when called from unsynced gadgets!&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.AddMapLight&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(requires MaxDynamicMapLights &amp;amp;gt; 0)&amp;lt;/font&amp;gt;&lt;br /&gt;
  (table lightParams) -&amp;gt; number lightHandle&lt;br /&gt;
&#039;&#039;&#039;Spring.AddModelLight&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot; style=&amp;quot;font-weight:600&amp;quot;&amp;gt;(requires MaxDynamicModelLights &amp;amp;gt; 0)&amp;lt;/font&amp;gt;&lt;br /&gt;
  (table lightParams) -&amp;gt; number lightHandle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.UpdateMapLight&#039;&#039;&#039;&lt;br /&gt;
  (number lightHandle, table lightParams) -&amp;gt; boolean success&lt;br /&gt;
&#039;&#039;&#039;Spring.UpdateModelLight&#039;&#039;&#039;&lt;br /&gt;
  (number lightHandle, table lightParams) -&amp;gt; boolean success&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetMapLightTrackingState&#039;&#039;&#039;&lt;br /&gt;
  (number lightHandle, number unitOrProjectileID,&lt;br /&gt;
   boolean enableTracking, boolean unitOrProjectile) -&amp;gt; boolean success&lt;br /&gt;
&#039;&#039;&#039;Spring.SetModelLightTrackingState&#039;&#039;&#039;&lt;br /&gt;
  (number lightHandle, number unitOrProjectileID,&lt;br /&gt;
   boolean enableTracking, boolean unitOrProjectile) -&amp;gt; boolean success&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lightParams&#039;&#039;&#039; is a table that should contain at least one of the following recognized key/value pairs:&lt;br /&gt;
&lt;br /&gt;
    lightParams = {&lt;br /&gt;
        position = {px, py, pz},&lt;br /&gt;
        direction = {dx, dy, dz},&lt;br /&gt;
        ambientColor = {red, green, blue},&lt;br /&gt;
        diffuseColor = {red, green, blue},&lt;br /&gt;
        specularColor = {red, green, blue},&lt;br /&gt;
        intensityWeight = {ambientWeight, diffuseWeight, specularWeight},&lt;br /&gt;
&lt;br /&gt;
        -- per-frame decay of ambientColor (spread over TTL frames)&lt;br /&gt;
        ambientDecayRate = {ambientRedDecay, ambientGreenDecay, ambientBlueDecay},&lt;br /&gt;
        -- per-frame decay of diffuseColor (spread over TTL frames)&lt;br /&gt;
        diffuseDecayRate = {diffuseRedDecay, diffuseGreenDecay, diffuseBlueDecay},&lt;br /&gt;
        -- per-frame decay of specularColor (spread over TTL frames)&lt;br /&gt;
        specularDecayRate = {specularRedDecay, specularGreenDecay, specularBlueDecay},&lt;br /&gt;
        -- *DecayType = 0.0 -&amp;gt; interpret *DecayRate values as linear, else as exponential&lt;br /&gt;
        decayFunctionType = {ambientDecayType, diffuseDecayType, specularDecayType},&lt;br /&gt;
&lt;br /&gt;
        radius = number elmos,&lt;br /&gt;
        fov = number degrees,&lt;br /&gt;
        ttl = number frames,&lt;br /&gt;
        priority = number,&lt;br /&gt;
        ignoreLOS = boolean,&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
= Map =&lt;br /&gt;
&#039;&#039;&#039;Spring.SetSkyBoxTexture&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( string texName ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetMapShadingTexture&#039;&#039;&#039; {{new|101.0}}&lt;br /&gt;
  ( string texType, string texName ) -&amp;gt; boolean success&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Example usage: Spring.SetMapShadingTexture(&amp;quot;$ssmf_specular&amp;quot;, &amp;quot;name_of_my_shiny_texture&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetMapSquareTexture&#039;&#039;&#039;&lt;br /&gt;
  ( number texSqrX, number texSqrY, string luaTexName ) -&amp;gt; boolean success&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spring.SetMapShader&#039;&#039;&#039; {{101.0}}&lt;br /&gt;
  ( number standardShaderID, number deferredShaderID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;The ID&#039;s must refer to valid programs returned by gl.CreateShader. Passing in a value of 0 will cause the respective shader to revert back to its engine default. Custom map shaders that declare a uniform ivec2 named &amp;quot;texSquare&amp;quot; can sample from the default diffuse texture(s), which are always bound to TU 0.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category: Lua]]&lt;/div&gt;</summary>
		<author><name>Jrb0001</name></author>
	</entry>
</feed>