Editing Mission Editor Tutorial

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
This is a '''tutorial''' on the basics of using the [[Mission Editor]].
+
=Mission Editor Tutorial: Attack of the Chickens.=
  
==Attack of the Chickens==
+
Download the mission editor [url=http://zero-k.info/missioneditor/setup.exe]here[/url]
Download the mission editor [http://zero-k.info/missioneditor/setup.exe here]
 
  
 
Install and double-click on MissionEditor.exe
 
Install and double-click on MissionEditor.exe
Line 8: Line 7:
 
You'll see the following screen:
 
You'll see the following screen:
  
http://enalostka.pancakeapps.com/S/Zero-k_editor1.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor1.jpg[/img]
  
If the unitsync box is red, click on browse, go to <code>Spring/engine/<platform>/<newest version></code> and select spring.exe.
+
If the unitsync box is red, click on browse, go to Spring/engine/[newest version] and select spring.exe.
Also edit springsettings.cfg in the same folder, and set SpringData to reference your Spring data directory. Like so:
 
<pre>SpringData = C:\Users\<my username>\Documents\My Games\Spring;</pre>
 
This lets it use the same maps and games that you normally play with online.
 
  
 
Click on New Mission, select an map, a mod, and mission name. They can be changed later.
 
Click on New Mission, select an map, a mod, and mission name. They can be changed later.
We'll call our mission "Attack of the Chickens"
+
We'll call our mission “Attack of the Chickens”
  
http://enalostka.pancakeapps.com/S/Zero-k_editor2.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor2.jpg[/img]
  
 
Once the map and mod have loaded, the main window will appear. On the left you can see a bar that will be filled by our mission logic. Mission logic consists of conditions and actions, contained by triggers. When any of the conditions in a trigger are met, its actions are executed.
 
Once the map and mod have loaded, the main window will appear. On the left you can see a bar that will be filled by our mission logic. Mission logic consists of conditions and actions, contained by triggers. When any of the conditions in a trigger are met, its actions are executed.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor3.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor3.jpg[/img]
  
  
First, let's look at the settings dialog. You can reach it by pressing on the "Mission" button in the menu bar, then on "Settings".
+
First, let's look at the settings dialog. You can reach it by pressing on the “Mission” button in the menu bar, then on “Settings”.
 
Fill in the author, description and scoring method. Also, rename the teams by double-clicking on their names.
 
Fill in the author, description and scoring method. Also, rename the teams by double-clicking on their names.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor4.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor4.jpg[/img]
  
Dismiss the window by pressing on "OK". Let's start by adding some units. Click on the "Create Units" action, in the left bar. You'll see the units that are loaded by default.
+
Dismiss the window by pressing on “OK”. Let's start by adding some units. Click on the “Create Units” action, in the left bar. You'll see the units that are loaded by default.
  
  
http://enalostka.pancakeapps.com/S/Zero-k_editor5.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor5.jpg[/img]
  
We don't need them. Select them by shift or ctrl-clicking on them, then right-click on one and press on "Delete".
+
We don't need them. Select them by shift or ctrl-clicking on them, then right-click on one and press on “Delete”.
The player will need some units to start with. Let's add some advanced engineers. We could scroll down until we see the Freakers, but it's faster to right-click on the unit list and select "Find". Type "corfast" in the find dialog and press on enter.
+
The player will need some units to start with. Let's add some advanced engineers. We could scroll down until we see the Freakers, but it's faster to right-click on the unit list and select “Find”. Type “corfast” in the find dialog and press on enter.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor6.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor6.jpg[/img]
  
 
Now, the Freaker is selected. Pick a nice hill on the South side and click on it a few times to add some engineers.
 
Now, the Freaker is selected. Pick a nice hill on the South side and click on it a few times to add some engineers.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor8.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor8.jpg[/img]
  
  
 
It would be cruel to send the player into a chicken-infested area without precautions, so give him a few Outlaws (codename: cormak). Grab them from the top border and rotate them a bit.
 
It would be cruel to send the player into a chicken-infested area without precautions, so give him a few Outlaws (codename: cormak). Grab them from the top border and rotate them a bit.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor9.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor9.jpg[/img]
  
  
Time to add something to shoot at! Click on the "New" button in a trigger bar.
+
Time to add something to shoot at! Click on the “New” button in a trigger bar.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor10.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor10.jpg[/img]
  
  
 
A new trigger will appear.
 
A new trigger will appear.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor11.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor11.jpg[/img]
  
  
It's a good idea to rename triggers to keep them organized. Right-click on the blue trigger bar, press on "Rename" then pick a new name.
+
It's a good idea to rename triggers to keep them organized. Right-click on the blue trigger bar, press on “Rename” then pick a new name.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor12.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor12.jpg[/img]
  
  
We want chickens to attack every minute. We'll add a metronome condition. Click on the "New" button in the conditions bar and click on "Metronome Clicks".
+
We want chickens to attack every minute. We'll add a metronome condition. Click on the “New” button in the conditions bar and click on “Metronome Clicks”.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor13.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor13.jpg[/img]
  
  
 
Set it to one minute.
 
Set it to one minute.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor15.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor15.jpg[/img]
  
  
Triggers, by default, can only be executed once. Right-click on the trigger then press on "Settings". Set the execution limit -1, which means that there is no limit.
+
Triggers, by default, can only be executed once. Right-click on the trigger then press on “Settings”. Set the execution limit -1, which means that there is no limit.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor16.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor16.jpg[/img]
  
  
The trigger still won't have any effect. We'll need to add some actions. Click on the "New" button in the actions bar.
+
The trigger still won't have any effect. We'll need to add some actions. Click on the “New” button in the actions bar.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor17.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor17.jpg[/img]
  
  
Line 91: Line 87:
 
Pick a spot in the North and add some chickens.
 
Pick a spot in the North and add some chickens.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor18.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor18.jpg[/img]
  
  
Chickens will now spawn every minute, but will just stand there. Add a "Give Orders to Unit" action and select it. If you don't select a group for the action, t will affect any unit created before the action, in the same trigger.
+
Chickens will now spawn every minute, but will just stand there. Add a “Give Orders to Unit” action and select it. If you don't select a group for the action, t will affect any unit created before the action, in the same trigger.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor19.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor19.jpg[/img]
  
  
Line 103: Line 99:
  
  
http://enalostka.pancakeapps.com/S/Zero-k_editor20.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor20.jpg[/img]
  
 
The objective is to stop the chickens, so we need to make the player lose points when they get past him. For that, we'll need to first add the chickens to a group.
 
The objective is to stop the chickens, so we need to make the player lose points when they get past him. For that, we'll need to first add the chickens to a group.
Line 109: Line 105:
  
  
http://enalostka.pancakeapps.com/S/Zero-k_editor21.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor21.jpg[/img]
  
 
Right click on them, then select Edit Groups. Type chickens and press on enter.
 
Right click on them, then select Edit Groups. Type chickens and press on enter.
  
  
http://enalostka.pancakeapps.com/S/Zero-k_editor22.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor22.jpg[/img]
  
  
Line 120: Line 116:
  
  
http://enalostka.pancakeapps.com/S/Zero-k_editor23.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor23.jpg[/img]
  
Next, create a new trigger. Add a "Unit Entered Area" condition.
+
Next, create a new trigger. Add a “Unit Entered Area” condition.
  
  
http://enalostka.pancakeapps.com/S/Zero-k_editor24.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor24.jpg[/img]
  
  
Line 134: Line 130:
 
Select the chickens group from the group list. Selecting a group means that only units from that group can meet the condition.
 
Select the chickens group from the group list. Selecting a group means that only units from that group can meet the condition.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor25.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor25.jpg[/img]
  
  
 
We want the trigger to last more than one activation.
 
We want the trigger to last more than one activation.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor26.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor26.jpg[/img]
  
  
 
Units in Area condition will now active its trigger every second that a chicken is in the rectangle.
 
Units in Area condition will now active its trigger every second that a chicken is in the rectangle.
  
Let's make the player lose points. Add a "Modify Score" action and cause the player to lose a point every time the trigger is executed.
+
Let's make the player lose points. Add a “Modify Score” action and cause the player to lose a point every time the trigger is executed.
 
The score is displayed in the GUI once it's different from zero.
 
The score is displayed in the GUI once it's different from zero.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor27.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor27.jpg[/img]
  
  
Let's give reward the player for killing chickens. Create a new trigger. Add a "Units Destroyed" condition. Select the chickens group.
+
Let's give reward the player for killing chickens. Create a new trigger. Add a “Units Destroyed” condition. Select the chickens group.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor28.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor28.jpg[/img]
  
  
Create a "Modify Score" action. This time, make the player gain points.
+
Create a “Modify Score” action. This time, make the player gain points.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor29.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor29.jpg[/img]
  
  
Line 163: Line 159:
  
  
Maybe we should give the player some time to prepare for the assault. Let's grant the player a minute of truce, and display a countdown for the first attack. Add a "Start Countdown" action to the first trigger. Give it a descriptive name. Choose the duration of the truce.
+
Maybe we should give the player some time to prepare for the assault. Let's grant the player a minute of truce, and display a countdown for the first attack. Add a “Start Countdown” action to the first trigger. Give it a descriptive name. Choose the duration of the truce.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor30.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor30.jpg[/img]
  
  
We'll make the "Chickens Attack" trigger that you created earlier start disabled, then activate after a minute. Select it and uncheck the "Enabled" check-box.
+
We'll make the “Chickens Attack” trigger that you created earlier start disabled, then activate after a minute. Select it and uncheck the “Enabled” check-box.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor31.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor31.jpg[/img]
  
Create a new trigger. Add a "Countdown Ended" condition.
+
Create a new trigger. Add a “Countdown Ended” condition.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor32.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor32.jpg[/img]
  
Add an "Enable Trigger" action. Select the chickens attack trigger.
+
Add an “Enable Trigger” action. Select the chickens attack trigger.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor33.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor33.jpg[/img]
  
 
Now the chickens won't attack until the countdown ended. The player will see the time remaining in the GUI.
 
Now the chickens won't attack until the countdown ended. The player will see the time remaining in the GUI.
  
Let's make Spiker waves, too. Create a new trigger. Add a "Create Units" condition. Place a few Spikers near the first chickens and add them to the chickens group.
+
Let's make Spiker waves, too. Create a new trigger. Add a “Create Units” condition. Place a few Spikers near the first chickens and add them to the chickens group.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor34.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor34.jpg[/img]
  
Add a "Give Orders to Units" action and make them fight their way to the south border.
+
Add a “Give Orders to Units” action and make them fight their way to the south border.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor35.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor35.jpg[/img]
  
 
Let's make the waves occur each couple of minutes, but this time, let's add a bit of randomness to make them less predictable. Add a metronome condition and set it to one minute.
 
Let's make the waves occur each couple of minutes, but this time, let's add a bit of randomness to make them less predictable. Add a metronome condition and set it to one minute.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor36.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor36.jpg[/img]
  
 
Go to the trigger options, set the execution count to -1. Also, set the probability to 0.5. It means that half of the times the conditions of the trigger will be met, it will not fire.
 
Go to the trigger options, set the execution count to -1. Also, set the probability to 0.5. It means that half of the times the conditions of the trigger will be met, it will not fire.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor37.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor37.jpg[/img]
  
Let's make the Spiker attacks start after 10 minutes. Add a "Wait" action. Move it up until it's the first action in the trigger. You can move triggers up by right-click on them then selecting "Move Up". Set the time to 10 minutes.
+
Let's make the Spiker attacks start after 10 minutes. Add a “Wait” action. Move it up until it's the first action in the trigger. You can move triggers up by right-click on them then selecting “Move Up”. Set the time to 10 minutes.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor38.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor38.jpg[/img]
  
Time to add the boss! Create a new trigger. Add a metronome condition set to forty minutes. Add a "Create Units" and a "Give Orders to Units" action.
+
Time to add the boss! Create a new trigger. Add a metronome condition set to forty minutes. Add a “Create Units” and a “Give Orders to Units” action.
Place a queen and order her to fight to the south border. Set her group to "chickens,queen". This means that she is both in the "chickens" and "queen" groups. The queen group will be needed later.
+
Place a queen and order her to fight to the south border. Set her group to “chickens,queen”. This means that she is both in the “chickens” and “queen” groups. The queen group will be needed later.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor39.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor39.jpg[/img]
  
Add a "Cause Sunset" action. An ominous darkness will announce the arrival of the queen.
+
Add a “Cause Sunset” action. An ominous darkness will announce the arrival of the queen.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor40.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor40.jpg[/img]
  
Let's make the player win and gain a big pile of points if he defeats the queen. Create a new trigger. Add a "Unit Destroyed" condition. Select the queen group.
+
Let's make the player win and gain a big pile of points if he defeats the queen. Create a new trigger. Add a “Unit Destroyed” condition. Select the queen group.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor41.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor41.jpg[/img]
  
Create a "Modify Score" action. Set it to "Increase Score" and type a large number. Also add a "Send Score" action.
+
Create a “Modify Score” action. Set it to “Increase Score” and type a large number. Also add a “Send Score” action.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor42.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor42.jpg[/img]
  
What if he's defeated? We want to record his score in that case, too. Create a new trigger. Add a "Player Died" condition and select the Robots team.
+
What if he's defeated? We want to record his score in that case, too. Create a new trigger. Add a “Player Died” condition and select the Robots team.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor43.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor43.jpg[/img]
  
Add another "Send Score" action.
+
Add another “Send Score” action.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor44.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor44.jpg[/img]
  
 
The game will end immediately, if it's tested at this point. That's because the chicken player has no units in the first minute. Go back to the first trigger and create a few chickens that will just stand there and prevent the game from ending.
 
The game will end immediately, if it's tested at this point. That's because the chicken player has no units in the first minute. Go back to the first trigger and create a few chickens that will just stand there and prevent the game from ending.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor45.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor45.jpg[/img]
  
You can now test the mission. Click on the Mission menu button and select Test Mission.
+
You can now test the mission. Click on the Mission menu button and select Test Mission.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor46.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor46.jpg[/img]
  
 
Resourceful players might make a huge wall to prevent the chickens from getting through. Since we didn't add any digging or climbing chicken, we'd better disable terraforming. Add a Lock Units action to the first trigger and select the terraforming buildings.
 
Resourceful players might make a huge wall to prevent the chickens from getting through. Since we didn't add any digging or climbing chicken, we'd better disable terraforming. Add a Lock Units action to the first trigger and select the terraforming buildings.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor47.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor47.jpg[/img]
  
http://enalostka.pancakeapps.com/S/Zero-k_editor48.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor48.jpg[/img]
  
We should tell the player about his objectives. First, let's center the camera on his units, when the game starts. Add a "Point Camera to Map Point" action to the firs trigger.
+
We should tell the player about his objectives. First, let's center the camera on his units, when the game starts. Add a “Point Camera to Map Point” action to the firs trigger.
 
Click on the starting hill.
 
Click on the starting hill.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor49.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor49.jpg[/img]
  
 
Add a GUI message action. Explain to the player what he needs to do in great detail.
 
Add a GUI message action. Explain to the player what he needs to do in great detail.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor50.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor50.jpg[/img]
  
http://enalostka.pancakeapps.com/S/Zero-k_editor51.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor51.jpg[/img]
  
 
Finally, mark the south border. Add a Show Marker Point action. Type the description and click on the south border of the map.
 
Finally, mark the south border. Add a Show Marker Point action. Type the description and click on the south border of the map.
  
http://enalostka.pancakeapps.com/S/Zero-k_editor52.jpg
+
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor52.jpg[/img]
  
The mission is now ready to be shared! See the [[Mission Editor#Publishing a mission|Mission Editor]] page for instructions.
 
  
[[Category:Mission Editor]]
+
The mission is now ready to be shared! Press on the “Publish Mission” entry in the Mission menu. Fill in the form.
 +
 
 +
[img]http://enalostka.pancakeapps.com/S/Zero-k_editor53.jpg[/img]
 +
 
 +
 
 +
Wait a few seconds...
 +
 
 +
 
 +
and the mission is visible in the Missions module of SpringDownloader.
 +
 
 +
 
 +
If you want to update or delete it, select the Manage Missions item in the Mission menu.

Please note that all contributions to Zero-K are considered to be released under the Creative Commons Attribution-ShareAlike (see Zero-K:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)