Quirks and nuances
When making maps for StarCraft, map makers often encounter a number of oddities and esoteric details that can lead to confusion. This document exists in an attempt to list these quirks and nuances.
These quirks affect types of units, and specific units.
- Cannot be detected in trigger conditions.
- The Move Location trigger can still always move a location onto the leftmost specific unit even though the leftmost one is a hallucination.
- The Give Unit and Modify Unit Energy trigger actions do not affect Hallucinations.
- If the owner of a Hallucination shares vision with another player, that other player will still not see any (visual) indication that the units are Hallucinations. (They won't be tinted blue.)
- Map Revealers cannot exist in a location. Though they can be created at a location, location-based trigger conditions (like Bring) and actions (like Remove Unit At Location) do not detect or affect Map Revealers.
- Zerg Broodlings created using Create Unit do not expire, unless they are later affected by a Modify Unit Hit Points action. Broodlings spawned using Create Unit With Properties do expire.
- Several Hero units have unusual properties:
- Computer-controlled heroes will never stop following an enemy unit until they acquire another target or are forced to stop (using triggers). Computer-controlled heroes never cast spells. Computers never cast single-target offensive spells on hero units, but they do use defensive spells, like Defensive Matrix, on their own heroes.
- Cocoons, Nuclear Missiles, Zerg Eggs, and Zerg Lurker Eggs will not register as "[men]" or "[any unit]" in the Bring condition. The Nuclear Missile will register as a Nuclear Missile in conditions, the Zerg Egg will register as a Zerg Egg, and Cocoons will register as Cocoons, but the Lurker Egg will not register as a Lurker Egg.
- Pre-placed Zerg Eggs, Zerg Lurker Eggs, and Cocoons will never finish morphing and cannot be canceled.
- Extra units available in SCMDraft 2 (any units not available in the original StarEdit Campaign Editor) cannot be created by triggers. This includes everything from extended heroes (like Raszagal and Arcturus Mengsk) to doodad units to extra powerups, like Mineral Chunks.(this can be changed through EUD Editor)
- Units owned by extended players cannot attack, because those players do not have vision of their own units. Vulture Spider Mines are exceptions, however, since they attack based on proximity rather than vision.
- A Terran Vulture's Spider Mine count cannot be altered using the Modify Unit Hangar Count trigger action.
- Some units, such as the Protoss Zealot and Protoss Dark Templar, have off-center collision boxes. Because of this, one must use smaller inverted locations when working with these units.
- Dark Swarms and Disruption Webs are owned by Neutral, not by the player that cast them.
- When moving a powerup using triggers, StarCraft will not check for other ground units at the target location. This means that the powerup may be moved directly over a unit, causing stacking. Stacked units, however, will continually move in an attempt to find a clear spot.
- Units affected by spells that reveal them (such as Plague and Ensnare) will remain revealed even after burrowing until the effects wear out. Ensnare and Plague will not reach burrowed units when cast, however.
- Pre-placed disabled unit sprites have no collision box. Other units can walk over them, but they cannot walk over other units. Disabled powerup unit sprites therefore do not displace units they are moved onto.
- Zerg Lurkers only attack while burrowed, and computer players will only burrow a Lurker when it is idle or automatically responding to the presence of enemy units. If the Order trigger action is used on a Lurker (regardless of whether the order is a Move, Attack, or Patrol order), the Lurker will un-burrow and move to the destination, ignoring any enemies it encounters on the way. It will not burrow again until it reaches its destination or has its orders removed by some other means. (This differs from other units' behaviors; other units will attack while moving or upon reaching their destination if Attack or Patrol orders are given.)
- Scarabs can be detected with the Bring condition while they are inside of a Reaver, as can the Interceptors inside of Carriers. Because of this, a location smaller than a Reaver that is centered on a Reaver can detect when the Reaver fires a Scarab. This knowledge is implemented in Direct Damage Systems.
- Similarly, the units in a Terran Bunker can be detected by checking a location centered on the Bunker, a stored Nuclear Missile can be detected by checking a location on its Nuclear Silo, and the units in a transport (Dropship/Shuttle/Overlord) can be detected by checking an air-only location centered on the transport.
- Scarabs cannot be given to players using triggers. Giving a Reaver will give all of its active Scarabs, however.
- Terran Add-ons cannot be given normally. You must instead give the building they are attached to; the Add-on will also be given.
- Give units to other player who had those upgrades or abilities then re-give units to the original player, to make units gain those upgrades or abilities, such as, using it on Hydralisks then all your Hydralisks suddenly gain Lurker Aspect; Using it on Dark Archons then all your Dark Archons suddenly gain Maelstrom or Mind Control. Using it on a Hero Vulture Jim Raynor to let him gain Ion Thrusters. Other Heroes however had already had their own upgrades and special abilities.
- Powerups will not be detected as "[any unit]" in conditions; instead, you must check for the powerup directly. Powerups do count as "[any unit]" in actions, however.
- Incomplete buildings cannot be detected in any conditions that use the "at least" or "exactly" modifiers, but they can be counted using the "at most" modifier; unfortunately this is generally not very useful. Incomplete buildings will be considered for actions. Incomplete Zerg buildings morphing to higher forms, such as a Zerg Spire morphing into a Greater Spire, will be treated as the pre-morph building for all trigger conditions and actions.
- Unit doodads, such as wall and floor traps, cannot be moved using the Move Unit action. They can only be moved by an Arbiter's Recall spell. Presumably, this is to prevent the "Move [any unit] at location" action from giving undesirable results in Installation maps created using StarEdit.
- Flag Beacons have a single-use "Place COP" action that will teleport the beacon to any buildable location on the map. Five minutes after the game starts, a flag will be created on top of the beacon and the "Place COP" action will be removed. If the flag is moved off the beacon by a worker and then dropped, it will return to its Flag Beacon (after 5 minutes?). This is an important consideration if you have a narrow area/maze in your map; if players have access to flag beacons they can grief other players by moving flags around the map and potentially creating immovable obstacles. Disabling doodad state on the flag beacon will cause the beacon to play the Terran power-down noise when selected by the user and remove the "Place COP" action, although the button for it will be briefly visible.
- Terran buildings that are created or pre-placed as "lifted" will move about a third faster than those than began their life on the ground. Once any building has been landed and lifted, it will have the regular building movement speed.
- CPU players have an additional aggression response to attacks from Protoss Interceptors; they will send all idle units in the general area (and it really is quite general) to counter-attack.
- [EUD Editor] Some units are Unselectable - Nuclear Missile, Scanner Sweep, Scarab, Dark Swarm, Disruption Web, Map Revealer, and Doors.
- In conditions, you must detect powerups using the specific unit, [Any Unit] and [Men] do not work.
- In actions, [Any Unit] does work, as well as the specific unit.
- For the Commands condition, powerups are registered as belonging to the naturally owning player, as expected.
- For the Bring condition, powerups are registered as belonging to the naturally owning player when they are on the ground.
- When a powerup is picked up by the worker of a player, Bring conditions will register the powerup as being owned by the worker's player, and not the natural powerup owner.
- The exception to this is the Flag powerup, which is always registered as being owned by the natural powerup owner.
- The "At most" modifier will not detect powerups being held by workers, registering them as 0 powerups.
- The "Exactly" and "At least" modifiers work as expected.
- Even when picked up by a worker, powerups continue to be registered as belonging to the naturally owning player in all actions.
- You cannot Give or Move powerups when they are held by a worker. Giving the holding worker does not transfer ownership of the held powerup (eg, it does not work the same as building add-ons).
- The only way to Give powerups is when they are lying on the ground.
- Powerups can be Removed or Killed while being held by worker but will not show any death explosion.
- When a worker holding a powerup dies, the powerup will be dropped at the place where the worker was, unless the area is unplaceable (eg on top of a beacon), in which case the powerup will be teleported back to the location it was originally created on the map (as distinct from where the worker picked it up from).
- Powerups can be Moved on top of any other regular ground unit (not other powerups), which will cause that unit to momentarily become stacked and attempt to find a new clear space of ground to occupy.
These quirks affect triggers and general game mechanics.
- StarCraft trigger actions affect units in order from left to right across a specified location. "Ties" are broken by whichever unit most recently occupied the tied x-coordinate. If none of the tied units have ever moved (such as ties between two pre-placed buildings), the unit with the greater index number (viewable in SCMDraft 2 unit properties window) is affected first.
- In conditions and actions, "Allies" applies only to players that the trigger owner has Allied Victory with. A player can only have Allied Victory with all or none of his allies. Setting a player to "Ally" will ally that player and turn Allied Victory off; setting a player to "Allied Victory" will ally that player and turn Allied Victory on for the trigger owner.
- Triggers run top to bottom from Player 1 to Player 8. Setting a trigger to run for a Force or All Players is the same as selecting all players in that force.
- When a player leaves the game, their units are given to Player 12 (Neutral). Any alliances that remaining players had with the departed player will remain intact toward those Player 12 units. Changing a player's alliance status with the departed player will likewise affect that player's alliance with those units.
- Center View acts as a Wait in single-player mode until the screen has fully centered on the target location. It also centers the mouse cursor, disbanding any selection rectangles in the process.
- When units die, there is one frame of animation where they are at 0 health and are designated to die. For that frame, they are technically still alive, they still have a collision box, they can still be detected with Bring (though not with Command), and they can even be given (but cannot be moved). They will have already added a death to their death counter. When you kill a unit with triggers, they are set to that zero-health "dead-but-not-dead" state. Since hyper triggers (on Fastest) run every other frame, there is essentially a 50% chance that a unit killed by something other than a trigger will be in that state when the triggers run. The Kill Unit action isn't so much a Kill Unit action as it is a "sentence to death" action.
- You cannot give units to a "group", such as Force 1, All Players, or Foes. However, units can be given from or created for groups.
- Deaths for extended players' units (and for Neutral units) can be read in conditions but cannot be altered with the Set Deaths action. They will accurately represent the deaths their units have amassed.
- Units cannot be created for Players 9-12. You must instead create the units for a normal player, and give the units to P9-12 as a separate action.
- Units given to Players 9-12 will retain the color of their previous owner, though they will use the P9-12 colors on the mini-map.
- If the player the units given to P9-12 belonged to is set as enemy, human-controlled units will automatically attack it.
- When a player who belongs to a group, like Force 1, is not present in the game, any units created via triggers for Force 1 or given to that player will still be owned by that phantom player. Unusually however, the "remove unit" action when applied to the player's group will *not* remove the phantom player's units; instead you must use specifically remove units for that individual player.
- When a Move Location action runs, if there are no applicable units for the moving location to center on, then the location will center in the center of the location that was supposed to contain these units. Because Map Revealers cannot be detected inside of locations, they are good units to use for centering one location on another.
- "Highest Score" applies to all players that have tied for the highest score (same for lowest).
- Using Move Unit to move a unit to an unplaceable location will cause the unit to halt its current action. unplaceable locations for ground units include impassable terrain and areas crowded with other ground units. Air units can be halted by moving them to a crowded location, such as a patch of lifted Terran buildings. The most fool-proof way is to create a location in the map editor, modify its coordinates so that it is positioned outside of the map, and then move units to it in-game. Units that are constantly moved to an unplaceable area (when hyper triggers are active) cannot be targeted (an attacker's hits won't land, except for splash damage, and the unit cannot be repaired) but will be able to shoot others. Scarabs moved to unplaceable locations will immediately detonate at their present location, a trick used in Direct Damage Systems.
- Giving a unit to another player and back to the original player will cancel any orders that that unit was carrying out. Players will also lose selection on the unit. Buildings under construction will be canceled and refunded, as will upgrades in progress.
- Ordering units to Move to a location through the Order action will result in them only attacking units that prohibit them from reaching their destination. Ordering them to Patrol will cause the applicable units to attack all enemy units along the way and carry out the patrolling back and forth as expected. Attack orders will retaliate to units that engage them but won't "start a fight" unless directly blocked, as in the case of the Move order.
- Moving a unit with the Move Unit action will cause it to enact its next waypoint order (orders given with the Shift key to be carried out sequentially) if it has one. Ordering a unit with the Order action will cancel all current and waypoint orders.
- Banning a player in the game lobby while their download is at the 99th percentile (and sometimes less) will still give them the map.
- Waits appear to be measured in real-time seconds, or a close approximant thereof. Changing game speed does not alter the amount of real-life time waited. (So, setting a 2000ms wait will always result in approximately 2 seconds worth of real-life time being waited, regardless of if you have game speed set to slowest or fastest. If on fastest, this would be about 3 seconds' worth of game time).
Map Editor Quirks (SCMDraft 2 unless otherwise noted)
- Locations appear to be one pixel shorter on the bottom and right sides. This applies to inverted locations as well. For clarification, I do not mean the edges labeled "Bottom" and "Right", but rather whichever bar is on the bottom and right; It could be "Top" and "Left" (if it were inverted).
- The AI script "Turn OFF/ON shared vision" is a little counter-intuitive as well. If, for example, Player 1 turns ON shared vision for Player 2, then they will gain vision of Player 2's units. Turning off shared vision of Player 2 will cause them to lose that vision. (In recent versions of SCMDraft 2, the AI script has been renamed "Turn ON/OFF Shared Vision of Player X for Current Player" to more accurately reflect this.)
- Neutral is Player 12. All Players refers to Players 1 through 12 (though Players 9 through 12 cannot run triggers). Neutral Players includes Players 9 through 11.
- In some versions, inverted locations shown on the map cannot be clicked on. To edit an inverted location once it is created, you must select it from the location list on the left and press enter.
- Certain Races in "Scenario => Map Properties" have strange effects.
- User Select - creates a base and 4 workers of the selected races, even in Use Map Settings mode, unless the starting location is on unplaceable terrain, in which case weird things happen - units/buildings of that player disappear. To avoid that choose a preselected race or "Random" for each player
- Neutral and Human are displayed as "Unknown",greyed out in lobby and crash the game
- Inactive cannot be chosen - dislpayed as "Select race", greyed out in the lobby - and game cannot be started
- Text Encoding / Translsation - Stacraft Remastered supports utf-8 and uses that format to store strings, but SCM Draft2(Beta 0.9.10) does not support utf-8. Instead, SCM Draft uses the local encoding language of your computer to display text. As a result, any non-english text must be converted before being entered into SCM Draft or copied from SCM Draft and it will not be displayed properly in SCM Draft. You can use Notepad++ to do that. The process is as follows:
- Insert foreign text into SCM Draft: select utf-8 encoding => type the text => select the encoding language of your local computer(found in Start menu => Control Panel => Language => Change date, time or number formats => Administrative => Language for Non-Unicode programs) => copy the garbage text into SCM Draft. That should cause SCM Draft to save the proper utf-8 text and Starcraft displays it in-game properly, although SCM Draft itself cannot display it.
- Extract foreign text from SCM Draft: Open Notepad++ => Encoding => choose your local encoding language(read above how to find it) => then copy the (unreadable garbage) text from SCM Draft and paste the text into Notepad++ => now in Encoding choose the encoding scheme that the language belongs to, for example EUC-KOR(949) for Korean or Cyrillic(1251) for Bulgarian/Russian(choosing utf-8 might also work for that last step).