Selection Systems

Selection systems are the UMS map maker's way of allowing the player to communicate with the map. In order for a player to communicate with the map in which they are playing, they need a method for inputting information into the map. This article is on how to create selection systems for players to "select" different items in order to make decisions within the map.

Basically any kind of player choice that triggers detect in order to change the current game state is a form of a selection system. Common selection systems include the use of a Barracks, Stargate, or Dropship.

## Location-Based Selection Method

**Location Selection** (AKA Beacon Select, AKA Bring Unit to Location) - A common selection system where a player moves units to static locations to make meaningful decisions. Usually this location is marked with a beacon.

* **Method of Implemenation** - Creating this type of selection system is simple; lay out some locations with a couple units that players control. Detect when a player moves one of these units into a location to perform a specific task. As mentioned above, the location that players move to is often marked with a beacon.
	+ **Pros**
		- Easy to implement.
		- Very simple and straightforward.
	+ **Cons**
		- Slow; units need to physically travel to the location.
		- Requires player's focus; player usually must view the location (after havin

**Move Select** (A selection system that involves checking if a given unit is NOT inside any given location) - Often simply used for single option, toggle-only, or always-having-at-least-one-option-constantly-selected selections. A more specific variation of movement select.

* **Method** - Single Option: Place a unit to use for selections (preferably something small and fast). Place a location, usually smaller than the unit (a 1x1 pixel sized location would work), on top of the unit. For maximum response time, an inverted location can be used to detect the unit movement. The purpose of this system is to detect when the unit leaves that specific location you placed. Once this happens, move it back and then make any wanted changes to the current state of the map.
	+ **Pros**
		- Simple and easy to understand, as well as easily implementable.
		- Fairly fast; unit only need travel at least its own radius in any direction to trigger options.
		- Hotkeyable; can be activated without needing player focus -the player can simply hotkey this unit and click anywhere on the map to use this system, rather than having to center their screen on the unit before moving the unit.
	+ **Cons**
		- Requires a designated unit and a designated location.
		- May require explanation to the player (non-standard unit behavior implied).

**Unit Select** (AKA Bring Unit to Unit) - Another common selection system involving triggers that keep a location centered upon a given unit. Selections are made by either bringing other units within this unit's location or moving this unit itself up to other units. The type and player of the unit brought to it can be detected and used to select a given option. Alternate form includes checking if units are NOT near the given unit.

* **Method** - Place selector unit. Place option units. Create a location (usually 2x2) on top of the selector unit. Use an Always trigger with Preserve Unit to Center the 2x2 location onto the selector unit. Detect when option units enter the location with Bring Unit triggers and activate the corresponding options.
	+ **Pros**
		- Intuitive; easy for players to understand with little explanation.
		- Not hard to implement.
	+ **Cons**
		- Slow; needs unit to physically travel to other units.
		- Requires physical space on the map for each options and enough room for the selector unit and location to go between them.
		- Requires a unique method of detection for each option location.
			* Methods may include:
				+ Differing between the specific type of the unit in the option location.
				+ Differing between the player that owns the different units in the option locations.
				+ Differing between the amount of units in an option location -usually done with multiple amounts of the same burrowed unit.
		- Requires a location to follow the selector unit (recycling possible with some effort, though).
		- Requires a designated unit as the option selector.

## Holder-Based

**Bunker Select** (A method that uses a bunker to hold and store units to be ejected at player will) - A Terran Bunker is used as the primary method of this selection system. Terran Infantry units are loaded inside a given bunker via. triggers. Triggers can then detect when the player unloads units from the bunker, allowing for up to 5 unique options per bunker (includes the Unload All option; also detectable). Triggers can be used to automatically reload the bunker to make reselection possible. Alternate form includes checking if units are loaded into the bunker instead of unloaded.

* **Method** - A location is placed over the bunker, the size of the bunker. Units that are in a bunker are still detectable via the bring condition, so one will need to detect when there is a lack of a specific unit inside of the bunker.Confirmation Needed
	+ **Pros**
		- Hotkeyable; a bunker can hot-keyed and orders can be issued without requiring the player to center their screen on the bunker.
		- 5 different selection detections can be made with a single location (the 5th being all units ejected at once).
		- Rather simple and easy to implement.
		- If the bunker is properly labeled/named then the use of this system can be highly intuitive to players.
	+ **Cons**
		- 4 different units are required to placed into each bunker.
		- Each bunker requires a specific amount of physical space on the map.
		- One location per bunker is required.

**Transport Select** (A method that uses a transport to hold and store units to be ejected at player will) - A transport unit (Zerg Overlord, Yggdrasill (Overlord), Terran Dropship, Protoss Shuttle) can be used to hold units inside. Units unloaded from the transport can be detected and used to select up to 8 unique options. Triggers can be used to automatically reload the transport.

* **Method** - A location is required to detect when units are ejected from the transport. It is recommended that triggers are used to ensure that the transport carrier stays within the detecting location. The detecting location must detect ground levels only. To do this, select your location and hit enter, or double click the location. Once in the location's properties, uncheck all the air detection check-marks. This will allow you to detect when a unit has exited the transport.
* ***Optional Method:*** One could use inverted locations to detect pixel movement of the transport, and immediately move the transport back to their designated spot. This can also be used as another input option (in addition to loaded units), not only to keep the transport still.
	+ **Pros**
		- 8-9 possible options from a single transport carrier.
		- Hotkeyable; a transport can hot-keyed and orders can be issued without requiring the player to center their screen on the bunker.
		- Rather easy to implement. -Complicated forms of menus using this selection system can get tedious
		- Users usually understand fairly easily what the transport is used for.
	+ **Cons**
		- Requires one location per transport.
		- Requires differentiatable units within the transport.
* ***Optional Method:*** Once you load a transport full of peon units (SCV, Drone, Probe). These peons could each be carrying a different type of resource. The carried resources must be pre-placed on the map and next to the peons. When the map starts, the peons will pick up the resource chunk and hold it. With this, one can detect the resource chunk rather than the peons, making for a possible 24 different options with only 3 different peon units.Confirmation Needed
	+ Usually requires a trigger to keep the transport in a single spot without moving, if an inverted location is used that adds one more location to the required locations count.

## Spell & Ability Based

**Dark Swarm/Disruption Web Select** - Using either the Zerg Defiler's Dark Swarm ability or the Protoss Corsair's Disruption Web ability, players can freely target specific points within range of the caster. Both the spell being cast and its exact location can be detected as units (Dark Swarm and Disruption Web units, respectively) belonging to the neutral player (Player 12). Spell units can be removed to allow repeatable selections.

**Mind Control Select** - Using the Dark Archon's Mind Control ability, non-building units ('men') of different players can be targeted by the spell and detected as a player's selection choice.

**Hallucination Select** - Using the High Templar's Hallucination ability, non-building units ('men') can be targeted by the spell and detected as a player's selection choice.

**Liftoff Select** - Any buildings with the Liftoff ability (Terran Command Center, Terran Barracks, Terran Engineering Bay, Terran Factory, Terran Starport, Terran Science Facility, Infested Command Center) can be detected for option selections when either lifted from the ground or landed at a given spot.

**Burrow Select** - Using any burrowable unit in the game (Zerg Zergling, Zerg Hydralisk, Zerg Drone, Zerg Defiler, Infested Terran, Devouring One (Zergling), Hunter Killer (Hydralisk), Unclean One (Defiler)), triggers can be made to detect whether a player burrows or unburrows a given unit for use with option selections.

**Morph Select** - Using any morphable units in the game (Zerg Drone, Zerg Hydralisk, Zerg Mutalisk, Zerg Creep Colony, Zerg Hatchery, Zerg Lair, Zerg Spire, Terran Siege Tank (Tank Mode), Terran Siege Tank (Tank Mode), Edmund Duke (Siege Tank), Edmund Duke (Siege Mode), Protoss High Templar (two needed), Protoss Dark Templar (two needed)), option selections can be made by detecting the changed unit.

**Cloak Select** - Using any cloakable unit or unit capable of making others cloak (Terran Ghost, Terran Wraith, Tom Kazansky (Wraith), Sarah Kerrigan (Ghost), Alexei Stukov (Ghost), Samir Duran (Ghost), Infested Kerrigan (Infested Terran), Infested Duran, Protoss Arbiter), the visibility status of a given unit can be detected through certain methods when cloaking is turned on or off. May also apply for burrowable units, too (not in the same way as Burrow Select, however).

## Build-Based

**Factory Build Select** - A selection system where players can use any factories (Terran Command Center, Terran Barracks, Terran Factory, Terran Starport, Protoss Nexus, Protoss Gateway, Protoss Robotics Facility, Protoss Stargate) to build units for use as option selections.

**Factory Build Cost Select** - Variant of the above optimized for slightly better responsiveness.

**Addon Select** - Through Terran buildings capable of constructing Addons (Terran Command Center, Terran Factory, Terran Starport, Terran Science Facility), the addons themselves can be detected for use as option selections.

**Hangar Select** - Any unit with a hangar capacity (Protoss Reaver, Protoss Carrier, Warbringer (Reaver), Gantrithor (Carrier)) can be used to make selections; either by building hangar units (including how many are built), or by deploying hangar units through an attack of some sort.

## Miscellaneous/Advanced/Composite

**Kill/Death Select** - Through any means available that kills or gets a unit killed/removed (direct attacks/harmful abilities, area effect/splash abilities/attacks, Defiler's consume, Queen's Broodling, Archon Warp, Dark Archon Meld, Infested Terran Explode), unit deaths/disappearnaces can be detected and used to select options. This system comes in a large variety of possible forms. Deaths can be detected by the absence of the unit that was killed, a player's Kill Score increasing, the killed unit's player's Deaths count increasing for that unit, or the absence of a given detectable activity the killed unit was in the process of executing.

**Rally Select** - An extension to build select. Options built at factories can be set to automatically move to player-selected locations via. setting the factory's rally point. These positions can be detected via. Location Select. Works best with air units.

**Mine Tripper Select** - A variation of either Location Select, Kill Select, or even Burrow Select that involves triggering a burrowed Vulture Spider Mine to pop up and try to attack.

**Heal Select** - Injured organic units can be used to con allied medics to attempt to heal them. The medic's automatic move to heal can then be detected (via. Location Selection) when an injured unit is within its heal range. Selections are therefore made by injuring any healable units near a given allied medic in some way.

**Detection Select** - Functionally the opposite of Cloak Select. Cloaked or concealed units detected through any means (Ally Vision, Scanner Sweep, Vulture Spider Mines, Terran Missile Turret, Terran Science Vessel, Magellan (Science Vessel), Protoss Photon Cannon, Protoss Observer, Ensnare, Plague, Devourer's Acid Spores, Zerg Spore Colony, Zerg Overlord, Yggdrasill (Overlord), Zerg Cerebrate, Zerg Cerebrate Danimoth, Zerg Overmind (each type) <did I miss any?>) can be used to detect any given cloaked or concealed units. Trigger methods can then be used to tell which units were detected and use that to select options accordingly.

**Recall Select** - The Protoss Arbiter's ability to recall a player's 'men' from anywhere on the map to its position can be used to detect both the movement, type, and number of units recalled away from a given point.

**Nydus Select** - Using the Zerg Nydus Canal's ability to create an exit point at any given location on the map covered by creep, the creation and position of the exit Nydus Canal can be used to make option selections.

**Flag Beacon Select** - Using the Flag Beacon's ability to be moved onto any given buildable location on the map once per beacon (but only within the first 5 minutes of gameplay), the movement and position of the Flag Beacon can be detected for option selection use.

**Morph/Build Abort Select** - Most morphable or buildable units have both a progress meter and a cancel option for their construction/morph duration. Through either the mineral/gas refund incurred from a cancellation of a build, or else the absence of the unit (using an odd property of the At Most modifier of the Brings Unit condition to detect this, usually), aborted attempts to build or morph units can be detected by triggers. Certain units, additionally, can also be set to build/morph indefinitely by setting them with the smallest possible non-zero build time.

**Ally/Vision Select** - Players can adjust their alliance or allied vision settings to other players in-game. This can be detected.

**Upgrade Detection** - Detect when players purchase upgrades.