Mission Editor Tutorial

From Zero-K
Jump to navigation Jump to search

This is a tutorial on the basics of using the Mission Editor.

Attack of the Chickens[edit]

Download the mission editor here

Install and double-click on MissionEditor.exe

You'll see the following screen:

Zero-k_editor1.jpg

If the unitsync box is red, click on browse, go to Spring/engine/<platform>/<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:

SpringData = C:\Users\<my username>\Documents\My Games\Spring;

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. We'll call our mission "Attack of the Chickens"

Zero-k_editor2.jpg

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.

Zero-k_editor3.jpg


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.

Zero-k_editor4.jpg

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.


Zero-k_editor5.jpg

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.

Zero-k_editor6.jpg

Now, the Freaker is selected. Pick a nice hill on the South side and click on it a few times to add some engineers.

Zero-k_editor8.jpg


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.

Zero-k_editor9.jpg


Time to add something to shoot at! Click on the "New" button in a trigger bar.

Zero-k_editor10.jpg


A new trigger will appear.

Zero-k_editor11.jpg


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.

Zero-k_editor12.jpg


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".

Zero-k_editor13.jpg


Set it to one minute.

Zero-k_editor15.jpg


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.

Zero-k_editor16.jpg


The trigger still won't have any effect. We'll need to add some actions. Click on the "New" button in the actions bar.

Zero-k_editor17.jpg


Select the chicken team in the team list.


Pick a spot in the North and add some chickens.

Zero-k_editor18.jpg


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.

Zero-k_editor19.jpg


Select the Fight order from the orders list. Click on a spot on the map near the south border. You'll see the player units a bit blurred. It means they were created in another trigger.


Zero-k_editor20.jpg

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. Go back to the Create Units action, and shift or ctrl-click on all the chickens. They'll glow to indicate they are selected.


Zero-k_editor21.jpg

Right click on them, then select Edit Groups. Type chickens and press on enter.


Zero-k_editor22.jpg


The group will be displayed under the unit in the map.


Zero-k_editor23.jpg

Next, create a new trigger. Add a "Unit Entered Area" condition.


Zero-k_editor24.jpg


We want to add a rectangle where chickens will cause the player to lose points. Click on the rectangle button in the toolbar. Drag a rectangle in front of the south border. Select the chickens group from the group list. Selecting a group means that only units from that group can meet the condition.

Zero-k_editor25.jpg


We want the trigger to last more than one activation.

Zero-k_editor26.jpg


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. The score is displayed in the GUI once it's different from zero.

Zero-k_editor27.jpg


Let's give reward the player for killing chickens. Create a new trigger. Add a "Units Destroyed" condition. Select the chickens group.

Zero-k_editor28.jpg


Create a "Modify Score" action. This time, make the player gain points.

Zero-k_editor29.jpg


Remember to remove the trigger executions limit.


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.

Zero-k_editor30.jpg


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.

Zero-k_editor31.jpg

Create a new trigger. Add a "Countdown Ended" condition.

Zero-k_editor32.jpg

Add an "Enable Trigger" action. Select the chickens attack trigger.

Zero-k_editor33.jpg

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.

Zero-k_editor34.jpg

Add a "Give Orders to Units" action and make them fight their way to the south border.

Zero-k_editor35.jpg

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.

Zero-k_editor36.jpg

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.

Zero-k_editor37.jpg

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.

Zero-k_editor38.jpg

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.

Zero-k_editor39.jpg

Add a "Cause Sunset" action. An ominous darkness will announce the arrival of the queen.

Zero-k_editor40.jpg

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.

Zero-k_editor41.jpg

Create a "Modify Score" action. Set it to "Increase Score" and type a large number. Also add a "Send Score" action.

Zero-k_editor42.jpg

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.

Zero-k_editor43.jpg

Add another "Send Score" action.

Zero-k_editor44.jpg

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.

Zero-k_editor45.jpg

You can now test the mission. Click on the Mission menu button and select Test Mission.

Zero-k_editor46.jpg

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.

Zero-k_editor47.jpg

Zero-k_editor48.jpg

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.

Zero-k_editor49.jpg

Add a GUI message action. Explain to the player what he needs to do in great detail.

Zero-k_editor50.jpg

Zero-k_editor51.jpg

Finally, mark the south border. Add a Show Marker Point action. Type the description and click on the south border of the map.

Zero-k_editor52.jpg

The mission is now ready to be shared! See the Mission Editor page for instructions.