Staredit is the map making utility included with Starcraft. Staredit is limited - there are many more things you can do to Starcraft that Staredit will not let you do. For these featues, such as square terrain, special units, and stackable buildings, you will need to use other editors. However, even within Staredit, there are advanced techniques that allow you to manipulate the available features to your benefit.

Variables edit

One thing you may notice early on: you have one variable to manipulate in StarEdit. Labeled as a "score" there is a score called "custom." You can use this value in any way with the condition for Score, and the action for Set Score.

As you might be thinking, you really do need more than 1. Now comes in other tricks.

1. Resources If you are making a map that doesn't require minerals or gas, you can use them to store information with the Accumulate condition, and Set Resources action.

Also note you can do this for computer players. But we still only have 3 choices.

2. Deaths Starcraft keeps track of how many times each unit in the game has died for each player. Even players 9, 10, 11 have their deaths counted. This will let us have atleast 100 different variables. With the Deaths condition and Set Deaths you can modify the deaths count for units that never exist in the game for easy variable access.

I will put a list of all the units that are never used (and therefore free to manipulate in any possible way). Many of these unused units will require a special version of a map editor.

Binary Countoffs edit

This section deals with how to use these variables well. The widely accepted solution involves binary countoffs as the quickest method.

Lets look at a map called Ice Wars. This map has 2 teams pitted against each other. For one team to attack other, they must 'send' units. When a unit is 'sent' then every time a timer finishes counting down all the units that have been sent for the entire game are spawned to attack the enemy.

Lets say on Team 1, they have sent 5 marines, 4 firebats, and a medic. When the timer countdown hits 0, how do we create 5 marines, 4 firebats, and a medic to attack the other team? Use Deaths

First we arbitrarily pick a unit to set the deaths for. IMPORTANT: If you are modifying the deaths of a Zerg Zergling for Player 4, then make sure Player 4 never has any Zerg Zerglings die!! There is a list of units that can never die, use those first if you aren't sure if one is safe or not.

We will assign the following table:

Unit Death Tracking Unit Secondary Death Tracking Unit
Marine Zerg Zergling Zerg Spawning Pool
Firebat Zerg Hydralisk Zerg Evolution Chamber
Medic Zerg Overlord Zerg Hive

This assumes you do not need Zerglings, Hydras, Overlords, Hives, Evolution Chambes, and Spawning Pools.

So first you will need a trigger like this for all 3 units.

CONDITIONS
    Current Player brings atleast 1 Terran Marine to SEND
ACTIONS
    Remove 1 Terran Marine for Current Player at SEND
    Set Deaths for Current Player: add 1 for Zerg Zergling
    Preserve Trigger

This sets up the marine counter. Next lets send the marines

CONDITIONS
    Countdown Timer is exactly 0 seconds.
    Current Player deaths for Zerg Zergling is atleast 1
ACTIONS
    Create 1 Terran Marine at MARINELOCATION for CurrentPlayer
    Set Deaths for CurrentPlayer subtract 1 for Zerg Zergling
    Set Deaths for CurrentPlayer add 1 for Zerg Spawning Pool
    Preserve Trigger

Now that the marines are created, you may recognize that the death count for Zergling is now 0. But, the death count for the Spawning Pool is what are marine count used to be. We need now to reverse these 2 numbers. Using switches, and a different secondary unit for all of these, the secondary countoffs can happen in paralel.

CONDITIONS
    CurrentPlayer deaths for Zergling is exactly 0
ACTIONS
    Set Switch1
    Preserve Trigger

Now do this

CONDITIONS
    Switch 1 is set
ACTIONS