<?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=Gamer17</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=Gamer17"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Gamer17"/>
	<updated>2026-11-08T19:12:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14354</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14354"/>
		<updated>2007-06-04T13:54:30Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the same thing for the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Place in the startscript folder&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Details for commands===&lt;br /&gt;
---=&lt;br /&gt;
 }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The commands are:&lt;br /&gt;
&lt;br /&gt;
     Command.STOP&lt;br /&gt;
     Command.WAIT&lt;br /&gt;
     Command.MOVE&lt;br /&gt;
     Command.FIGHT&lt;br /&gt;
     Command.ATTACK&lt;br /&gt;
     Command.AREA_ATTACK&lt;br /&gt;
     Command.GUARD&lt;br /&gt;
     Command.LOAD_UNITS&lt;br /&gt;
     Command.UNLOAD_UNITS&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
&lt;br /&gt;
These are points on the map, they show up in the bottom left corner of the screen while playing&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Using groups===&lt;br /&gt;
&lt;br /&gt;
You can refer to a group of guys later on, somewhere else in the script if you have  given them a name. For example. &lt;br /&gt;
---=&lt;br /&gt;
&lt;br /&gt;
self.panzer1 = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2054.0, 109.4, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 606.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 108.2, 574.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 109.1, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 107.0, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2126.0, 111.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2094.0, 110.5, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMBULL&amp;quot;, float3(2250.0, 108.2, 503.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2136.0, 113.8, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2168.0, 111.4, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2022.0, 111.1, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 109.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2077.0, 113.0, 652.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2109.0, 115.2, 652.0), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Then order them around like this&lt;br /&gt;
&lt;br /&gt;
local c = Command()&lt;br /&gt;
    c.id = Command.PATROL&lt;br /&gt;
    c:AddParam(4645)&lt;br /&gt;
    c:AddParam(140)&lt;br /&gt;
    c:AddParam(8926)&lt;br /&gt;
    for i = 1, table.getn(self.panzer1) do&lt;br /&gt;
   self.panzer1[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
===Credits===&lt;br /&gt;
Wrote by Gamer17&lt;br /&gt;
&lt;br /&gt;
Got everything from:&lt;br /&gt;
&lt;br /&gt;
smartie and Thor&lt;br /&gt;
&lt;br /&gt;
More info at this wiki&lt;br /&gt;
http://spring.clan-sy.com/wiki/Mission_development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ask any questions at this tread&lt;br /&gt;
http://spring.clan-sy.com/phpbb/viewtopic.php?t=10501&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=0&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=NOTA&amp;diff=14851</id>
		<title>NOTA</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=NOTA&amp;diff=14851"/>
		<updated>2007-06-04T00:43:03Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Gameplay Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
[[Image:Notascale.jpg|thumb|200px|right|The Arm Battlecruiser next to a medium tank and some peewees]]&lt;br /&gt;
Not OTA, or NOTA, is a re-imagining of the TA universe with an emphasis on realism, scale, and strategy. Units have been altered, scaled, added, and replaced to create a consistent world: infantry kbots are smaller than tanks; aircraft use fuel and have a variety of distinct roles such as ground attack, air superiority, interception, and strategic bombing; and ships are not boats, but true, full-scale ships, with subs for raiding the enemy&#039;s economy, destroyers for hunting subs, and capital ships for engaging enemy fleets. The result is a cohesive, believable world that very much resembles the one seen in the original TA intro video.&lt;br /&gt;
&lt;br /&gt;
=== Gameplay Guide === &lt;br /&gt;
In NOTA, the player begins the game with a stationary base rather than a commander. From here the player can build any level 1 resource buildings, factories, and defenses. Construction units can only build some basic resource buildings and very simple defenses. This means that while the main base is relatively easy to defend, the player will have to rely on his armies, airplanes, and mobile defenses to hold other parts of the map. Additional expansion bases with the same access to defenses as the main base can be built by constructing a nanotower.&lt;br /&gt;
&lt;br /&gt;
[[Image:notanukecan.jpg|thumb|200px|left|A nuclear cannon firing at a distant target]]NOTA focuses more on level 1- advancing to level 2 is pretty expensive and usually doesn&#039;t happen until fairly late in the game. The two main types of ground units, kbots and vehicles, are very different from each other- vehicles are much faster and better at raids and assaults, while kbots are slower, but better climbers, and are often more cost effective than vehicles, but also more vulnerable to large area of effect weapons, especially from planes. An important concept to understand in NOTA is armor. While a light laser or EMG is devastating to lighter units such as all level 1 kbots and most level 1 vehicles, it will have trouble penetrating thicker armor like that found on medium tanks, and will be almost completely ineffective against very heavy armor like that found on heavy tanks. Thus, as the game progresses, light tanks(flashes and instigators) and infantry(peewees and ak&#039;s), among others, will become less useful as heavier units show up on the battlefield, and should be phased out in favor of units whose weapons can penetrate armor(e.g. medium tanks and rocket kbots).&lt;br /&gt;
&lt;br /&gt;
A combined arms approach to combat is absolutely necessary to be successful in NOTA. Your armies should be supported, both on offense and defense, by a strong and capable airforce. Use fighters to protect your forces from enemy aircraft, while using your own ground attack aircraft like the Arm Hellfish or Core Vashp to support your armies in battle. Mobile Groundbased AA is expensive, and should be used sparingly. Missile launchers are good against enemy fighters, while mobile flak is best against slower-moving planes like bombers. Flak is also the only ground weapon capable of firing on high-altitude strategic bombers. Bases have little to worry about from most enemy aircraft, thanks to missile towers, which are more than capable of destroying any low altitude planes. However, strategic bombers are a significant threat and should be protected against with a mixture of flak and fighters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Nota2nukes.jpg|thumb|200px|right|A zoomed out view, showing NOTA&#039;s extensive use of icons]]Later in the game, when you are ready to advance to level 2, you will usually have to make a choice on which type of units to advance to. There are four specialized level 2 nanotowers, each of which allows you to build a specific kind of level 2 unit as well as fusions and other advanced resource buildings. These are Vehicles, Kbots, Aircraft, and Defense. Vehicles have heavy tanks, good for bulldozing through enemy bases, advanced anti-air, and long range heavy rocket trucks, extremely powerful units that can outrange and destroy base defenses with powerful, guided ballistic missiles. While vehicles are generally good for assaulting bases, kbots are better suited for destroying enemy armies. Units like the can, morty, maverick, and zeus are great against opposing armies but lack the combination of speed and armor necessary for a good assault unit. The Level 2 aircraft plant allows you to build several powerful units including the stealth fighter for air superiority, the gunship for short range base defense, and the napalm bomber or flying wing for anti-infantry or anti-armor support, respectively. The defense nanotower allows construction of advanced defenses like doomsday machines, annihilators, long range plasma cannons, nuclear cannons, and nuclear missiles.There is also a much more expensive advanced level 2 nanotower that allows you to build all of the above plus very advanced units like pod factories, krogoth gantries, and orbital lasers.&lt;br /&gt;
&lt;br /&gt;
http://video.google.com/videoplay?docid=-4089040240642942729&amp;amp;q=nota+trailer&lt;br /&gt;
&lt;br /&gt;
Back to [[Mods]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods]]&lt;br /&gt;
{{Category:Mods}}&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14353</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14353"/>
		<updated>2007-06-03T03:40:36Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the same thing for the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Details for commands===&lt;br /&gt;
---=&lt;br /&gt;
 }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The commands are:&lt;br /&gt;
&lt;br /&gt;
     Command.STOP&lt;br /&gt;
     Command.WAIT&lt;br /&gt;
     Command.MOVE&lt;br /&gt;
     Command.FIGHT&lt;br /&gt;
     Command.ATTACK&lt;br /&gt;
     Command.AREA_ATTACK&lt;br /&gt;
     Command.GUARD&lt;br /&gt;
     Command.LOAD_UNITS&lt;br /&gt;
     Command.UNLOAD_UNITS&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
&lt;br /&gt;
These are points on the map, they show up in the bottom left corner of the screen while playing&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Using groups===&lt;br /&gt;
&lt;br /&gt;
You can refer to a group of guys later on, somewhere else in the script if you have  given them a name. For example. &lt;br /&gt;
---=&lt;br /&gt;
&lt;br /&gt;
self.panzer1 = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2054.0, 109.4, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 606.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 108.2, 574.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 109.1, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 107.0, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2126.0, 111.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2094.0, 110.5, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMBULL&amp;quot;, float3(2250.0, 108.2, 503.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2136.0, 113.8, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2168.0, 111.4, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2022.0, 111.1, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 109.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2077.0, 113.0, 652.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2109.0, 115.2, 652.0), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Then order them around like this&lt;br /&gt;
&lt;br /&gt;
local c = Command()&lt;br /&gt;
    c.id = Command.PATROL&lt;br /&gt;
    c:AddParam(4645)&lt;br /&gt;
    c:AddParam(140)&lt;br /&gt;
    c:AddParam(8926)&lt;br /&gt;
    for i = 1, table.getn(self.panzer1) do&lt;br /&gt;
   self.panzer1[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
===Credits===&lt;br /&gt;
Wrote by Gamer17&lt;br /&gt;
&lt;br /&gt;
Got everything from:&lt;br /&gt;
&lt;br /&gt;
smartie and Thor&lt;br /&gt;
&lt;br /&gt;
More info at this wiki&lt;br /&gt;
http://spring.clan-sy.com/wiki/Mission_development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ask any questions at this tread&lt;br /&gt;
http://spring.clan-sy.com/phpbb/viewtopic.php?t=10501&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=0&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14352</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14352"/>
		<updated>2007-06-03T03:39:53Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the same thing for the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Details for commands===&lt;br /&gt;
---=&lt;br /&gt;
 }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The commands are:&lt;br /&gt;
&lt;br /&gt;
     Command.STOP&lt;br /&gt;
     Command.WAIT&lt;br /&gt;
     Command.MOVE&lt;br /&gt;
     Command.FIGHT&lt;br /&gt;
     Command.ATTACK&lt;br /&gt;
     Command.AREA_ATTACK&lt;br /&gt;
     Command.GUARD&lt;br /&gt;
     Command.LOAD_UNITS&lt;br /&gt;
     Command.UNLOAD_UNITS&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
&lt;br /&gt;
These are points on the map, they show up in the bottom left corner of the screen while playing&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Using groups===&lt;br /&gt;
&lt;br /&gt;
You can refer to a group of guys later on, somewhere else in the script if you have  given them a name. For example. &lt;br /&gt;
---=&lt;br /&gt;
&lt;br /&gt;
self.panzer1 = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2054.0, 109.4, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 606.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 108.2, 574.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 109.1, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 107.0, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2126.0, 111.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2094.0, 110.5, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMBULL&amp;quot;, float3(2250.0, 108.2, 503.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2136.0, 113.8, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2168.0, 111.4, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2022.0, 111.1, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 109.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2077.0, 113.0, 652.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2109.0, 115.2, 652.0), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Then order them around like this&lt;br /&gt;
&lt;br /&gt;
local c = Command()&lt;br /&gt;
    c.id = Command.PATROL&lt;br /&gt;
    c:AddParam(4645)&lt;br /&gt;
    c:AddParam(140)&lt;br /&gt;
    c:AddParam(8926)&lt;br /&gt;
    for i = 1, table.getn(self.panzer1) do&lt;br /&gt;
   self.panzer1[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
===Credits===&lt;br /&gt;
Wrote by Gamer17&lt;br /&gt;
&lt;br /&gt;
Got everything from:&lt;br /&gt;
&lt;br /&gt;
smartie and Thor&lt;br /&gt;
&lt;br /&gt;
More info at this wiki&lt;br /&gt;
http://spring.clan-sy.com/wiki/Mission_development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ask any questions at this tread&lt;br /&gt;
http://spring.clan-sy.com/phpbb/viewtopic.php?t=10501&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=0&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14351</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14351"/>
		<updated>2007-06-01T02:20:50Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Details for commands===&lt;br /&gt;
---=&lt;br /&gt;
 }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The commands are:&lt;br /&gt;
&lt;br /&gt;
     Command.STOP&lt;br /&gt;
     Command.WAIT&lt;br /&gt;
     Command.MOVE&lt;br /&gt;
     Command.FIGHT&lt;br /&gt;
     Command.ATTACK&lt;br /&gt;
     Command.AREA_ATTACK&lt;br /&gt;
     Command.GUARD&lt;br /&gt;
     Command.LOAD_UNITS&lt;br /&gt;
     Command.UNLOAD_UNITS&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
&lt;br /&gt;
These are points on the map, they show up in the bottom left corner of the screen while playing&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Using groups===&lt;br /&gt;
&lt;br /&gt;
You can refer to a group of guys later on, somewhere else in the script if you have  given them a name. For example. &lt;br /&gt;
---=&lt;br /&gt;
&lt;br /&gt;
self.panzer1 = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2054.0, 109.4, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 606.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 108.2, 574.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 109.1, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 107.0, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2126.0, 111.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2094.0, 110.5, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMBULL&amp;quot;, float3(2250.0, 108.2, 503.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2136.0, 113.8, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2168.0, 111.4, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2022.0, 111.1, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 109.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2077.0, 113.0, 652.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2109.0, 115.2, 652.0), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Then order them around like this&lt;br /&gt;
&lt;br /&gt;
local c = Command()&lt;br /&gt;
    c.id = Command.PATROL&lt;br /&gt;
    c:AddParam(4645)&lt;br /&gt;
    c:AddParam(140)&lt;br /&gt;
    c:AddParam(8926)&lt;br /&gt;
    for i = 1, table.getn(self.panzer1) do&lt;br /&gt;
   self.panzer1[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
===Credits===&lt;br /&gt;
Wrote by Gamer17&lt;br /&gt;
&lt;br /&gt;
Got everything from:&lt;br /&gt;
&lt;br /&gt;
smartie and Thor&lt;br /&gt;
&lt;br /&gt;
More info at this wiki&lt;br /&gt;
http://spring.clan-sy.com/wiki/Mission_development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ask any questions at this tread&lt;br /&gt;
http://spring.clan-sy.com/phpbb/viewtopic.php?t=10501&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=0&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14350</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14350"/>
		<updated>2007-06-01T02:17:09Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Details for commands===&lt;br /&gt;
---=&lt;br /&gt;
 }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The commands are:&lt;br /&gt;
&lt;br /&gt;
     Command.STOP&lt;br /&gt;
     Command.WAIT&lt;br /&gt;
     Command.MOVE&lt;br /&gt;
     Command.FIGHT&lt;br /&gt;
     Command.ATTACK&lt;br /&gt;
     Command.AREA_ATTACK&lt;br /&gt;
     Command.GUARD&lt;br /&gt;
     Command.LOAD_UNITS&lt;br /&gt;
     Command.UNLOAD_UNITS&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
&lt;br /&gt;
These are points on the map, they show up in the bottom left corner of the screen while playing&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Using groups===&lt;br /&gt;
&lt;br /&gt;
You can refer to a group of guys later on, somewhere else in the script if you have  given them a name. For example. &lt;br /&gt;
---=&lt;br /&gt;
&lt;br /&gt;
self.panzer1 = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2054.0, 109.4, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 606.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 108.2, 574.0), 1, false),&lt;br /&gt;
   units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 109.1, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2113.0, 107.0, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2126.0, 111.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2094.0, 110.5, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMBULL&amp;quot;, float3(2250.0, 108.2, 503.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2136.0, 113.8, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2168.0, 111.4, 638.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2022.0, 111.1, 594.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2065.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2207.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2239.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2271.0, 108.2, 574.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 528.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMYORK&amp;quot;, float3(2161.0, 108.2, 480.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMMART&amp;quot;, float3(2303.0, 109.4, 606.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2077.0, 113.0, 652.0), 1, false),&lt;br /&gt;
       units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(2109.0, 115.2, 652.0), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Then order them around like this&lt;br /&gt;
&lt;br /&gt;
local c = Command()&lt;br /&gt;
    c.id = Command.PATROL&lt;br /&gt;
    c:AddParam(4645)&lt;br /&gt;
    c:AddParam(140)&lt;br /&gt;
    c:AddParam(8926)&lt;br /&gt;
    for i = 1, table.getn(self.panzer1) do&lt;br /&gt;
   self.panzer1[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14349</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14349"/>
		<updated>2007-06-01T02:12:46Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Details for commands===&lt;br /&gt;
---&lt;br /&gt;
 }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The commands are:&lt;br /&gt;
&lt;br /&gt;
     Command.STOP&lt;br /&gt;
     Command.WAIT&lt;br /&gt;
     Command.MOVE&lt;br /&gt;
     Command.FIGHT&lt;br /&gt;
     Command.ATTACK&lt;br /&gt;
     Command.AREA_ATTACK&lt;br /&gt;
     Command.GUARD&lt;br /&gt;
     Command.LOAD_UNITS&lt;br /&gt;
     Command.UNLOAD_UNITS&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
&lt;br /&gt;
These are points on the map, they show up in the bottom left corner of the screen while playing&lt;br /&gt;
---&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14348</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14348"/>
		<updated>2007-06-01T02:05:02Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Scripting your mission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Using the Update function as a trigger===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;br /&gt;
&lt;br /&gt;
===Indepth look at the MoveTanks() function===&lt;br /&gt;
&lt;br /&gt;
Below is the code for MoveTanks(). It loads a bunch of units near the edge of the map where the enemy base is and tells them to move to a point on the map. You get the load unit code for them the same way you do for loading the starting units in the setup function.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
function Blank:MoveTanks()&lt;br /&gt;
    local unitList = {&lt;br /&gt;
        units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4294.4, 119.7, 569.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4375.3, 121.6, 555.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4424.2, 126.5, 621.0), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4498.7, 119.6, 509.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4294.2, 115.2, 449.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4555.6, 118.8, 486.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4612.9, 118.8, 471.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4298.7, 117.6, 515.2), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4332.7, 114.1, 335.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4345.2, 116.9, 497.9), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4445.7, 120.3, 506.3), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4472.5, 114.1, 391.7), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4571.3, 115.2, 358.5), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSTUMP&amp;quot;, float3(4472.8, 115.6, 450.8), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMSAM&amp;quot;, float3(4260.4, 114.1, 396.6), 1, false),&lt;br /&gt;
    units.Load(&amp;quot;ARMBULL&amp;quot;, float3(4579.6, 117.6, 427.1), 1, false)&lt;br /&gt;
    }&lt;br /&gt;
    local c = Command()&lt;br /&gt;
    c.id = Command.MOVE&lt;br /&gt;
    c:AddParam(4284)&lt;br /&gt;
    c:AddParam(132)&lt;br /&gt;
    c:AddParam(3886)&lt;br /&gt;
    for i = 1, table.getn(unitList) do&lt;br /&gt;
   unitList[i]:GiveCommand(c)&lt;br /&gt;
    end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14347</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14347"/>
		<updated>2007-06-01T01:56:23Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Scripting your mission===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
&lt;br /&gt;
MoveTanks() is called after 60 sec  &lt;br /&gt;
&lt;br /&gt;
Airsupport() is called after 75 sec&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14346</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14346"/>
		<updated>2007-05-31T12:06:27Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Scripting your mission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Scripting your mission===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The parts at the top are functions that get called in the Update() function&lt;br /&gt;
after x amount of time. &lt;br /&gt;
&lt;br /&gt;
10 seconds in the game it prints a message. &lt;br /&gt;
&lt;br /&gt;
SetupDelayed() gets called after 20 seconds.&lt;br /&gt;
MoveTanks() is called after 60 sec  ForwardTanks2() is called after 75.&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14345</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14345"/>
		<updated>2007-05-31T12:01:16Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Scripting your mission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Scripting your mission===&lt;br /&gt;
&lt;br /&gt;
Now open up your txt to start scripting&lt;br /&gt;
&lt;br /&gt;
The setup function only runs once, the first frame when the game starts and never again. That&#039;s where you want to put in all the code for loading the starting units and bases &lt;br /&gt;
&lt;br /&gt;
At center of your mission script is the update function. It gets called by the game 30 times per second. You call all the other functions from this function.  A lot of the missions run on a time counter.&lt;br /&gt;
&lt;br /&gt;
EX. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
-- This function is executed every simulated frame (30 times/sec) &lt;br /&gt;
function Blank:Update() &lt;br /&gt;
&lt;br /&gt;
    -- Perform initialization &lt;br /&gt;
    if self.state == 0 then &lt;br /&gt;
        self.state = 1 &lt;br /&gt;
        self:Setup() &lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Welcome&amp;quot;) &lt;br /&gt;
    end &lt;br /&gt;
    &lt;br /&gt;
    -- Run SlowUpdate once every second &lt;br /&gt;
    if math.mod(gs.frameNum, 30) == 0 then &lt;br /&gt;
        self:SlowUpdate() &lt;br /&gt;
    end &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    -- Do some stuff a bit later &lt;br /&gt;
     if gs.frameNum == 30*10 then &lt;br /&gt;
   print(&amp;quot;Their moving to attack us &amp;quot;) &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*20 then &lt;br /&gt;
        self:SetupDelayed() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*60 then &lt;br /&gt;
        self:MoveTanks() &lt;br /&gt;
     end &lt;br /&gt;
     if gs.frameNum == 30*75 then &lt;br /&gt;
        self:Airsupport() &lt;br /&gt;
     end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14344</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14344"/>
		<updated>2007-05-31T01:04:59Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
To change this txt file back to lua: &lt;br /&gt;
&lt;br /&gt;
Go to save as&lt;br /&gt;
&lt;br /&gt;
Change the name to &amp;quot;whatever.lua&amp;quot; without the qutoes&lt;br /&gt;
&lt;br /&gt;
Then change the type to &amp;quot;All Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Scripting your mission===&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14343</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14343"/>
		<updated>2007-05-31T00:59:32Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Blank:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
Now to test it&lt;br /&gt;
&lt;br /&gt;
Push Ctrl+H and find  Blank, then replace it with the name you want for your mission.&lt;br /&gt;
&lt;br /&gt;
If it opens and all the units spawn, then you are ready to start making your mission.&lt;br /&gt;
&lt;br /&gt;
===Scripting your mission===&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14342</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14342"/>
		<updated>2007-05-31T00:47:08Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Template:Setup()&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14341</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14341"/>
		<updated>2007-05-31T00:46:06Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 &lt;br /&gt;
It&#039;ll have the code for loading the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;br /&gt;
&lt;br /&gt;
You should see lines like this&lt;br /&gt;
&lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(15400, 85, 2450), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(12650, 40, 2054), 0, false) &lt;br /&gt;
units.Load(&amp;quot;CORAK&amp;quot;, float3(13444, 60, 2045, 0, false) &lt;br /&gt;
&lt;br /&gt;
Now cut out the unit loading code paste it into the Template:Setup() function&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
-- Create a bunch of units for this simple mission&lt;br /&gt;
function Template:Setup()&lt;br /&gt;
units.Load(&amp;quot;arm_solar_collector&amp;quot;, float3(472.0, 45.2, 280.0), 0, false)&lt;br /&gt;
units.Load(&amp;quot;arm_metal_extractor&amp;quot;, float3(328.0, 40.7, 360.0), 0, false)&lt;br /&gt;
units.Load(&amp;quot;arm_commander&amp;quot;, float3(469.7, 42.5, 441.7), 0, false)&lt;br /&gt;
units.Load(&amp;quot;arm_wind_generator&amp;quot;, float3(288.0, 40.1, 2768.0), 1, false)&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1920.0, 44.4, 2176.0), 1, false)&lt;br /&gt;
units.Load(&amp;quot;arm_light_laser_tower&amp;quot;, float3(1776.0, 43.9, 2208.0), 1, false)&lt;br /&gt;
units.Load(&amp;quot;arm_vehicle_plant&amp;quot;, float3(528.0, 74.0, 3664.0), 1, false)&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14340</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14340"/>
		<updated>2007-05-31T00:17:18Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;br /&gt;
&lt;br /&gt;
Once you save the units, quit&lt;br /&gt;
Now open up the file &#039;&#039;&#039;infolog&#039;&#039;&#039; thats in spring folder.&lt;br /&gt;
 It&#039;ll have the code for loading in the units in there. Don&#039;t open up spring again before you copy it out or you&#039;ll lose everything.&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14339</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14339"/>
		<updated>2007-05-30T21:39:09Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;br /&gt;
&lt;br /&gt;
Load up spring from spring.exe in your spring folder.&lt;br /&gt;
Now choose mission builder from the list.&lt;br /&gt;
&lt;br /&gt;
Push enter and type: .cheat&lt;br /&gt;
                    .nocost&lt;br /&gt;
These will allow you to build your mission a lot faster&lt;br /&gt;
&lt;br /&gt;
Now build up a friendly base with all the units you want, and an enemy base with all the units you want for them. &lt;br /&gt;
&lt;br /&gt;
Then select all of the players units and base, then push enter and type: .savesel 0&lt;br /&gt;
&lt;br /&gt;
Now do the save thing foe the enemy, but type: .savesel 1&lt;br /&gt;
&lt;br /&gt;
Lastly push enter and type: .savefeatures&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14338</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14338"/>
		<updated>2007-05-30T21:27:32Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad and save it as a txt file&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14337</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14337"/>
		<updated>2007-05-30T21:27:00Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: /* Mission development Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14336</id>
		<title>Mission development Guide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mission_development_Guide&amp;diff=14336"/>
		<updated>2007-05-30T21:25:15Z</updated>

		<summary type="html">&lt;p&gt;Gamer17: Not Done&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Mission development Guide==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
First download this [http://spring.unknown-files.net/file/2945/Blank_Lua_file_/ template ]&lt;br /&gt;
&lt;br /&gt;
Then open it up in notepad&lt;/div&gt;</summary>
		<author><name>Gamer17</name></author>
	</entry>
</feed>