<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ashesofthesingularity.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlphonsoHornibro</id>
	<title>Ashes of the Singularity - Official Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ashesofthesingularity.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlphonsoHornibro"/>
	<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php/Special:Contributions/AlphonsoHornibro"/>
	<updated>2026-04-21T20:29:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Map_Editor&amp;diff=9749</id>
		<title>Map Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Map_Editor&amp;diff=9749"/>
		<updated>2018-08-06T03:10:33Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Fixing Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding]]&lt;br /&gt;
The Map Editor is the tool the Ashes of the Singularity team uses to create maps. It has many powerful options, but be aware - generating maps at high quality levels, and especially at large sizes, requires a ton of CPU and RAM. Minimum of 16gb RAM is recommended for creating maps.&lt;br /&gt;
&lt;br /&gt;
== Enabling the Map Editor ==&lt;br /&gt;
To enable the &#039;&#039;&#039;Map Editor&#039;&#039;&#039; add the “-modding” (without the quotes) to the Launch Options for the game (in Steam, right-click the game, go to Properties, click Set Launch Options in the General tab). That will add a Map Editor button to Modding menu of the game. From there you can decide if you want to modify an existing map, or create a new one. If you create a new one the menu to the right is presented. If you are going to edit an existing map, you should make a copy of the original map and modify the duplicate with a new name.&lt;br /&gt;
&lt;br /&gt;
DX11 should be used with the Map Editor as running DX12 will cause issues where objects such as the cursor don&#039;t properly display. Running windowed mode will also make it easier if you have issues and need to force close the game.&lt;br /&gt;
&lt;br /&gt;
== New Map Options ==&lt;br /&gt;
[[File:New Map Menu.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
When creating a new map, there&#039;s several options to choose from:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Map Name&#039;&#039;&#039; - The name the map shows up as in-game. This can be changed later on simply renaming the map folder, so don&#039;t stress about getting the perfect name when you are first starting.  &lt;br /&gt;
*&#039;&#039;&#039;Map Size&#039;&#039;&#039; - 12/24/36/48/72/96 correlates to Arena(Currently not used),Tiny,Small,Medium,Large,Enormous.&lt;br /&gt;
*&#039;&#039;&#039;Terrain Synth Type&#039;&#039;&#039; - Effects textures of the map. Just leave this at 1 as changing it can cause issues.&lt;br /&gt;
*&#039;&#039;&#039;Cell Size&#039;&#039;&#039; - The smaller the cell size, the smaller terrain objects you can place but will increase map size. I&#039;d recommend you leave this at default of 400 to avoid issues, and the difference is negligible. &lt;br /&gt;
*&#039;&#039;&#039;Terrain Type&#039;&#039;&#039; - The type of map terrain used, such as snow or desert. This can be changed later.&lt;br /&gt;
*&#039;&#039;&#039;Light Environment &amp;amp; Sky Background&#039;&#039;&#039; -  These change the lightning profiles used, such as if a map is during the day or night. Changing these on Volanic, Crystal and Turinium Terrain Types will cause a crashe.&lt;br /&gt;
&lt;br /&gt;
== Map Editor Commands ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;File&#039;&#039;&#039; - This is where you can edit the MapProperties.xml file for increasing Turinium Requirements, go to the folder where the map information is stored or exit the Map Editor. &lt;br /&gt;
*&#039;&#039;&#039;Show/Hide Help&#039;&#039;&#039; - This displays some useful information for using the Map Editor. I have it set to display help in the above screenshot. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Toggle Display Mode&#039;&#039;&#039; - This changes how you are viewing the map. In the above screenshot I’m not looking at modeled terrain. It’s often easier to layout the map in this mode. But you can switch over to realistic terrain if you want to see exactly what your map would look like to the player. &lt;br /&gt;
*&#039;&#039;&#039;Enable Symmetry&#039;&#039;&#039; - Enable this if you want your terrain painting to be symmetrical. If it is set you can choose to make is symmetrically mirrored or use a radial symmetry for multiple equal positions. &lt;br /&gt;
*&#039;&#039;&#039;Terran/Desert/Frozen/Volcanic/Crystal/Turinium&#039;&#039;&#039; - This is quite misleading, this is supposed to let you change terrain setting but this doesn&#039;t stay after you saved the file. To actually change the the map from terran to desert you need to edit the GraphicsSettings.csv file with Notepad++. A much easier way of doing this is just copying the GraphicsSetting.csv file from another map that has the desired terrain setting. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Brush Size&#039;&#039;&#039; - When painting terrain or cosmetics this is the brush size you would like to use. &#039;&#039;Also [ctrl+mousewheel]&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Edit Terrain&#039;&#039;&#039; - Chose the terrain type to paint from 7 base terrains: &lt;br /&gt;
**&#039;&#039;&#039;Plains&#039;&#039;&#039; - Normal ground &lt;br /&gt;
**&#039;&#039;&#039;Plateau&#039;&#039;&#039; - Higher ground that the player can still move and build on. Height is an advantage for many units so plateaus generally make for good defensive positions. &lt;br /&gt;
**&#039;&#039;&#039;Hill&#039;&#039;&#039; - Hills connect Plains and Plateaus. Use them to determine where players can access one elevation from the other. &lt;br /&gt;
**&#039;&#039;&#039;Mountain&#039;&#039;&#039; - Mountains are impassable by anything except flying units. Use them to block parts of the map. &lt;br /&gt;
**&#039;&#039;&#039;Basin&#039;&#039;&#039; - Basins are also impassable to anything except for flying units. But units with long enough range can fire across basins. &lt;br /&gt;
**&#039;&#039;&#039;Highlands&#039;&#039;&#039; - Like Plateaus, but higher. Connect them to other terrain types with Hills. &lt;br /&gt;
**&#039;&#039;&#039;Lowlands&#039;&#039;&#039; - Like Plains, but lower. Connect them to other terrain types with Hills. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Edit Buildings&#039;&#039;&#039; - Use this to place the following on the map: &lt;br /&gt;
**&#039;&#039;&#039;Player Seed&#039;&#039;&#039; - A player&#039;s Nexus, their starting location. &lt;br /&gt;
**&#039;&#039;&#039;Relay&#039;&#039;&#039; - The heart of a region. Surround it with Metal and Radioactive deposits to decide what that region offer. &lt;br /&gt;
**&#039;&#039;&#039;Turinium_Generator&#039;&#039;&#039; - This is a special type of power generator that can provide victory points. &lt;br /&gt;
**&#039;&#039;&#039;Metal_Deposit&#039;&#039;&#039; - Provides Metal for the player who owns this region. &lt;br /&gt;
**&#039;&#039;&#039;Radioactive_Deposit&#039;&#039;&#039; - Provides Radioactives for the player who owns this region. &lt;br /&gt;
**&#039;&#039;&#039;Artifact&#039;&#039;&#039; - Ignore this, it&#039;s not functional.&lt;br /&gt;
**&#039;&#039;&#039;Scale Unit&#039;&#039;&#039; - Ignore this, it&#039;s not functional and just causes crashes.&lt;br /&gt;
**&#039;&#039;&#039;Dead Region&#039;&#039;&#039; - Determines the connection between regions. Useful for setting up cutoffs.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Edit Cosmetic&#039;&#039;&#039; - Place alternate ground textures. This makes the map look more detailed and varied, it is recommended you use lots of cosmetics all over the map. &#039;&#039;&#039;NOTE: Turn off symmetry when editing cosmetic details!&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Edit Effects&#039;&#039;&#039; - Place particle (Smoke) effects on the map. This is currently experimental and I recommend you don&#039;t use any of these as it can cause crashes&lt;br /&gt;
*&#039;&#039;&#039;Build Quality&#039;&#039;&#039; - Determines the texture quality generated on the map. Raising this will increase the amount of time and memory required to generate the terrain, so leave it at 1 while testing. Stardock generates at terrain quality 3 or 4 for our final maps. Anything higher than 4 will probably crash your machine. The larger the map size, the longer and more difficult it is to render. Small maps render out at 4, large maps at 3. &lt;br /&gt;
*&#039;&#039;&#039;Erosion&#039;&#039;&#039; - Affects texture quality. I&#039;d recommend just leaving this at its default else raising it can cause issues.&lt;br /&gt;
*&#039;&#039;&#039;Terrain Synth&#039;&#039;&#039; - The style of slopes and mountains generated by the erosion simulation. I&#039;d recommend leaving it at 1 and 2 as anything else is experimental and may cause issues.&lt;br /&gt;
*&#039;&#039;&#039;Rebuild Terrain&#039;&#039;&#039; - This regenerates the map with any changes you have made so you can see how they look. This is effectively &amp;quot;saving&amp;quot; the map.&lt;br /&gt;
*&#039;&#039;&#039;Regionalize / Save Cells&#039;&#039;&#039; - Reloads map settings, but doesn&#039;t regenerate map changes. This is only useful for updating Turinium Requirement changes.&lt;br /&gt;
&lt;br /&gt;
== Map Example ==&lt;br /&gt;
&lt;br /&gt;
I selected Terran (grassland) terrain and default Lighting. As you will see in the demo I change to Frozen Terrain later, it’s easy to do so don’t worry too much about your selection here.&lt;br /&gt;
&lt;br /&gt;
The following is the default map that you are given. It starts with two player Nexuses, a Turinium Generator and one other region. But we have lots of things we can add.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 3.png|thumb|right|200px|Logical view of a super-basic map]]&lt;br /&gt;
&lt;br /&gt;
Teal is plateau, red is mountains, blue is basins, yellow is hills and the green is plains.&lt;br /&gt;
&lt;br /&gt;
The player Nexuses are in the upper right and the lower left. The point of this map was to create a single channel for the players to battle through. The upper part is biased for the player on the left, giving him a plateau to fire down at enemy units driving by the area below and the reverse for the southern part of the map.&lt;br /&gt;
&lt;br /&gt;
There are three Turinium_Generators, one in the center of the map and one on each of the two plateaus overlooking the plains pass. The goal is to make one Turinium Generator easy for each player to grab so they need to battle over the one in the center (since victory points are awarded to the player who holds the majority of generators).&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 4.png|thumb|right|200px|Basic map after terrain generation]]&lt;br /&gt;
&lt;br /&gt;
Rebuilding the terrain and toggling to map display mode gives us a look at what the map will look like. I like the pass, the mountains and the basin. But the rest looks a little bare. So I need to add more details to make that area more interesting. I often forget how big the Ashes maps are, so when I toggle to the real map they don’t seem as full as I imagined.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 5.png|thumb|right|200px|Better map - logical view]]&lt;br /&gt;
&lt;br /&gt;
In this update I’ve added more opportunities for the defending player. The overlooking plateaus can only be accessed from the Nexus region so they get to attack in the central channel as well as attacking units forced to come by the plateau wall on their way to the Nexus.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 6.png|thumb|right|200px|Better map - terrain view]]&lt;br /&gt;
&lt;br /&gt;
I’ve also switched it over to the Frozen terrain. I think its brutal hostility fits the maps focus better. I put the build quality up to 4 and increased the erosion levels so it looks great. It took a lot more time to generate (btw: don’t attempt to use high build levels on the largest possible maps unless you have a lot of memory) but it looks great.&lt;br /&gt;
&lt;br /&gt;
This map is a lot of fun to play, but may favor aircraft too strongly (since they can bypass all of these defense and attack anywhere. In a later section we will talk about creating scripts where we could do things like disable aircraft so the players are forced to slug it out.&lt;br /&gt;
&lt;br /&gt;
== Updating Turinium Requirements ==&lt;br /&gt;
&lt;br /&gt;
By default, maps will have lowTurinium Requirements. (How much Turinium is required for players to win.) To increase this, select &amp;quot;Edit MapProperties.xml&amp;quot; under the &amp;quot;File&amp;quot; menu in the top left corner, and change the number inside the victory_point_cap=&amp;quot;500&amp;quot; to the desired Turinium. (Using Notepad++ is recommended) Save the .xml file, but the Turinium levels won&#039;t be updated until you open up the map again in the Map Editor, and Regionalize or Regenerate the map terrain. Regionalize is much faster than Regnerate, and is all you need to do for the purpose of updating Turinium. To check a maps Turinium requirements, you can also play the map in a Skirmish and in the top right corner you will see a Turinium value in the player panel.&lt;br /&gt;
&lt;br /&gt;
== Distributing Maps ==&lt;br /&gt;
Maps will not be downloaded when a player joins a lobby that is on a new or edited map, attempting to start the match will result in a crash. A modder will need to upload their map to a web hosting platform such as Dropbox, and everyone wishing to play that map will have to manually download and install the map into \Steamapps\common\Ashes of the Singularity Escalation\Assets\Maps. Every time that map receives a change, even if the name remains the same, it will have to be redownoaded. We don&#039;t currently have Steam Workshop support enabled for Ashes, but it is something we are hoping for.&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
The current form of the Map Editor wasn&#039;t intended for public use, which is why it&#039;s hidden behind the -modding command. The Map Editor is rough and a number of unintuitive things can cause crashes with no explanation to the user, causing much frustration. There&#039;s a number of things the Map Editor doesn&#039;t like which can cause crashes during regenerating terrain or loading into it. Alternative to crashes, problems can also be manifested by the map editor endlessly hanging at regenerating terrain. (If you check  your CPU usage, you can tell when the terrain generation is actually working or when it has frozen.) If you are experiencing a crash or map editor being stuck during terrain generation, ensure none of these things are happening:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Buildings are on Mountain, Hill or Basin&#039;&#039;&#039; - Buildings shouldn&#039;t be placed on all terrain types.&lt;br /&gt;
*&#039;&#039;&#039;Too many Effects&#039;&#039;&#039; - Effects are experimental and can cause crashes if there&#039;s too many of them. Remove all effects and see if the crash persists.&lt;br /&gt;
*&#039;&#039;&#039;Adjacent Terrain Types&#039;&#039;&#039; - Placing different terrain types adjacent can cause a crash. This is hard to identify, but if you have Plateau, Lowlands and Basin all connected next to each other, it can cause a crash.&lt;br /&gt;
*&#039;&#039;&#039;Terrain Quality too high&#039;&#039;&#039; - Try lowering the Terrain quality to 1 and see if it still crashes during render.&lt;br /&gt;
*&#039;&#039;&#039;Buildings hanging over map edge&#039;&#039;&#039; - Ensure none of the buildings are hanging over the edge of the map, this can especially happen with the Dead Regions.&lt;br /&gt;
*&#039;&#039;&#039;Sky Background incompatible with Terrain Type&#039;&#039;&#039; - This is easy to identify because the crash will occur when you place a Nexus. The Sky Background options seem to be incompatible with the newer Terrain Types introduced in Escalation such as Crystal, Lava, Turinium. Create a new map with default Sky Background settings.&lt;br /&gt;
*&#039;&#039;&#039;Crashing When Loading a Map or Creating New One&#039;&#039;&#039; If your game is reliably crashing when creating or loading a map, make sure you have virtual  memory (paging file) disabled.&lt;br /&gt;
*&#039;&#039;&#039;Black Lines Issue&#039;&#039;&#039; - Sometimes a map won&#039;t generate properly, and when you open the map in-game it will have a giant black line throughout the map. If this happens, regenerate the terrain and it will fix it most of the time. If regenerating doesn&#039;t fix this issue, you may need to flatten out that effected area then redraw it.&lt;br /&gt;
&lt;br /&gt;
== Changing Map Thumbnail ==&lt;br /&gt;
&lt;br /&gt;
Regenerating Terrain will automatically create a map thumbnail MapPreview.dds in the map directory which shows up in the map selection menu and in the in-game minimap. However, the default generated thumbnails are quite messy compared to ones which are manually created, which is what every map in the game uses. Creating a release quality map thumbmail involves a few steps, require some basic knowledge of either Adobe Photoshop or GIMP (which is a free alternative), downloading [https://1drv.ms/i/s!AvSWhdBjPNfkvTAkISVNYVZPSXxT this map preview shade] and will require the [http://gametechdev.github.io/Intel-Texture-Works-Plugin/ Intel .DDS plugin] to save the thumbnail to the required format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Take Screenshot:&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Opt-in to a Modding build under steam betas to enable the developer tools&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Click “Skirmish” on the Game Menu&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Start a game on the map you need to Screenshot&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Open up the developer tools by pressing ` or HOME&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;With Developer Tools open (Top left corner will have two small grey boxes and a third longer grey box&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Click on the second small box out from the corner&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Check the box for &amp;quot;DebugPlayerPanel&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Wait for the fog to clear/lighting to normalize.&#039;&#039;&#039; - Large maps sometimes cause your machine to freak out here and show weird graphic glitches, but they should time out&lt;br /&gt;
*&#039;&#039;&#039;Hit ESC to Pause the game&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Check the box for &amp;quot;Screen Shot View&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Close Developer Tools ( ` or HOME )&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Capture a screenshot of the entire map&#039;&#039;&#039;&lt;br /&gt;
[[File:ScreenShotView.png|center|frame|Screen Shot View]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Edit Screenshot:&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Open screenshot of map in Photoshop or GIMP &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Crop your shot down to just the map terrain&#039;&#039;&#039; - (a little black at the very edges is okay.)&lt;br /&gt;
*&#039;&#039;&#039;Resize it to 512x512 pixels EXACTLY &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Boost saturation or curves&#039;&#039;&#039; - This is optional, but in some map types you may want to lighten up the thumbnail to make it look nicer, this is done is almost all of the existing maps and is especially important in Crystal or Turinium maps.&lt;br /&gt;
*&#039;&#039;&#039;Add the map preview shade as a new layer&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Merge the layers&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Export as MapPreview.dds in map directory&#039;&#039;&#039; - (no mipmaps. Must have this filename exactly, will overwrite existing one) The .dds file format will only appear if you have currently installed the intel .dds texture plugin.&lt;br /&gt;
&lt;br /&gt;
You should now see this much nicer thumbnail when you load the game. Regenerating the map will automatically create a new MapPreview.dds file which will overwrite the fancy one you have made, to prevent this you can right click on it, properties and choose Read Only so it won&#039;t be overwritten. If you change the terrain layout of the map you will want to create a new thumbnail, but if you are only changing the building layout there is no need to change the thumbnail.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9620</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9620"/>
		<updated>2018-03-13T07:13:49Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Scripting – Creating Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. [[Missions (scripting)|Click here]] to see the full list of what can be configured in mission scripting.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9619</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9619"/>
		<updated>2018-03-13T07:13:06Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Scripting – Creating Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.[[Click here|missions]]) to see the full list of what can be configured in mission scripting.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9618</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9618"/>
		<updated>2018-03-13T07:11:56Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Mission Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. [[Click here]http://wiki.ashesofthesingularity.com/index.php/Missions_](scripting) for the full list of what can be configured in mission scripting.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9617</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9617"/>
		<updated>2018-03-13T07:11:32Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Mission Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. [[Click here]]http://wiki.ashesofthesingularity.com/index.php/Missions_(scripting) for the full list of what can be configured in mission scripting.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Script_Commands&amp;diff=9616</id>
		<title>Script Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Script_Commands&amp;diff=9616"/>
		<updated>2018-03-13T07:09:14Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Commands are used within [[Triggers|triggers]] to create gameplay effects, from revealing locations to spawning attack waves or even changing an AI&#039;s difficulty mid-game.&lt;br /&gt;
&lt;br /&gt;
== List of Commands ==&lt;br /&gt;
&lt;br /&gt;
=== [[ActivateTrigger|ActivateTrigger]] ===&lt;br /&gt;
&lt;br /&gt;
Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - This is the name of another trigger that will be set from Inactive to Active. &lt;br /&gt;
&lt;br /&gt;
=== [[AreaIndicator|AreaIndicator]] ===&lt;br /&gt;
&lt;br /&gt;
This places a visible indicator on the map to help the player know where they should go to.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the area. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - The center of the area. &lt;br /&gt;
*&#039;&#039;&#039;Color&#039;&#039;&#039; - The color the area indicator is. [ Green | Blue | Red ] &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - How big the area indicator will be. &lt;br /&gt;
*&#039;&#039;&#039;Duration&#039;&#039;&#039; - How long the area indicator should last, -1 means that it lasts forever. &lt;br /&gt;
&lt;br /&gt;
=== [[AttackAttackMove|AttackAttackMove]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to move to a specific area, engaging enemies along the way.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the army that will be given the order. &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - Whether to repeat the order. Use with multiple AttackAttackMove commands to create a patrol path. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the army is ordered to move to. &lt;br /&gt;
&lt;br /&gt;
=== [[AttackUnit|AttackUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to attack a specific script-spawned unit&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to do the attacking &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the unit to be attacked &lt;br /&gt;
&lt;br /&gt;
=== [[Camera|Camera]] ===&lt;br /&gt;
&lt;br /&gt;
Move the player&#039;s view to a specific area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the camera will be looking. &lt;br /&gt;
*&#039;&#039;&#039;Snap&#039;&#039;&#039; - Set to 1 to move the camera instantly, instead of panning &lt;br /&gt;
*&#039;&#039;&#039;Speed&#039;&#039;&#039; - Scalar for how fast the camera will move, compared to clicking on the minimap. 0.5 for half speed, 2 for double, etc. &lt;br /&gt;
*&#039;&#039;&#039;Unit&#039;&#039;&#039; - Follow a specific script-spawned unit. Do not use Position if you use this. &lt;br /&gt;
*&#039;&#039;&#039;Building&#039;&#039;&#039; - Follow a specific script-spawned building. Do not use Position if you use this. &lt;br /&gt;
*&#039;&#039;&#039;Save&#039;&#039;&#039; - Save the current camera settings. Useful if you want to show the player something and then move the camera back to whatever they were looking at. &lt;br /&gt;
*&#039;&#039;&#039;Load&#039;&#039;&#039; - Load the last saved camera settings. Use with Save. May cause a crash if you haven&#039;t previously saved a camera position. &lt;br /&gt;
*&#039;&#039;&#039;RTP&#039;&#039;&#039; - Distance, rotation and pitch of the camera. &lt;br /&gt;
**The first number is distance. 1000 is a fairly tight shot, 2500 is a fairly typical gameplay zoom &lt;br /&gt;
**Second number is rotation. 0 points the camera north, 90 east, 180 south, 270 west. &lt;br /&gt;
**Third number is pitch. 40-50 are typical gameplay angles. 90 would be straight down. Note that anything lower than 40 can cause the engine to load a &#039;&#039;&#039;lot&#039;&#039;&#039; more terrain and models than it&#039;s designed to, so use with caution. &lt;br /&gt;
&lt;br /&gt;
=== [[CaptureNearest|CaptureNearest]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to do the capturing &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - Whether to repeat the order (indefinitely) &lt;br /&gt;
&lt;br /&gt;
=== [[CaptureNearestNext|CaptureNearestNext]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to capture the nearest neutral or enemy-controlled region&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to do the capturing &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - Whether to repeat the order (indefinitely) &lt;br /&gt;
&lt;br /&gt;
=== [[ChangeAIDifficulty|ChangeAIDifficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Change an AI player&#039;s difficulty setting&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to change &lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The name of the difficulty to set it to &lt;br /&gt;
&lt;br /&gt;
=== [[ChangeAIPersonality|ChangeAIPersonality]] ===&lt;br /&gt;
&lt;br /&gt;
Change an AI player&#039;s personality&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to change &lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the personality to set it to (defined in \Assets\GameCore\DefaultPlayerAI.xml) &lt;br /&gt;
&lt;br /&gt;
=== [[DestroyBuilding|DestroyBuilding]] ===&lt;br /&gt;
&lt;br /&gt;
Destroys a specific script-spawned building.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the building to be destroyed. &lt;br /&gt;
&lt;br /&gt;
=== [[DestroyUnit|DestroyUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Destroys a specific script-spawned unit.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to be destroyed. &lt;br /&gt;
&lt;br /&gt;
=== [[Dialog|Dialog]] ===&lt;br /&gt;
&lt;br /&gt;
This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
=== [[Entry|Entry]] ===&lt;br /&gt;
&lt;br /&gt;
The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Text&#039;&#039;&#039; - The actual text that is displayed. Corresponds to an entry in a .csv file in \Assets\UIText\ &lt;br /&gt;
*&#039;&#039;&#039;Icon&#039;&#039;&#039; - The icon used with the text popup. Hard-coded to correspond to Ashes characters, and changes the text color to match. &lt;br /&gt;
**Mac &lt;br /&gt;
**Haalee &lt;br /&gt;
**Vexen &lt;br /&gt;
**Valen &lt;br /&gt;
**Artix &lt;br /&gt;
**Ventrix &lt;br /&gt;
**Athena &lt;br /&gt;
**Narrator&lt;br /&gt;
**Agememnon &lt;br /&gt;
**Agethon &lt;br /&gt;
&lt;br /&gt;
=== [[EndMission|EndMission]] ===&lt;br /&gt;
&lt;br /&gt;
Use to force a win or loss of the scenario.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Victory&#039;&#039;&#039; - Set to 0 to lose the scenario or 1 to win. &lt;br /&gt;
*&#039;&#039;&#039;String&#039;&#039;&#039; - The text that is displayed. &lt;br /&gt;
&lt;br /&gt;
=== [[GrantStuff|GrantStuff]] ===&lt;br /&gt;
&lt;br /&gt;
Give a player free resources.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to be hooked up &lt;br /&gt;
*&#039;&#039;&#039;Metal&#039;&#039;&#039; - The amount of metal being granted. &lt;br /&gt;
*&#039;&#039;&#039;Quanta&#039;&#039;&#039; - The amount of quanta being granted. &lt;br /&gt;
*&#039;&#039;&#039;Radioactives&#039;&#039;&#039; - The amount of radioactives being granted. &lt;br /&gt;
*&#039;&#039;&#039;Turinium&#039;&#039;&#039; - The amount of victory points being granted. &lt;br /&gt;
&lt;br /&gt;
=== [[GrantTech|GrantTech]] ===&lt;br /&gt;
&lt;br /&gt;
Give a player a free Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to be hooked up &lt;br /&gt;
*&#039;&#039;&#039;Tech&#039;&#039;&#039; - The upgrade to grant [ HPs | Weapons | Radar | BuildingHPs | MetalStorage | RadsStorage | NexusHPs ]&lt;br /&gt;
&lt;br /&gt;
=== [[HidePanel|HidePanel]] ===&lt;br /&gt;
&lt;br /&gt;
Hide UI panels.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;HidePlayer&#039;&#039;&#039; - Hide the Player panel &lt;br /&gt;
*&#039;&#039;&#039;HideRank&#039;&#039;&#039; - Hide the Rank panel &lt;br /&gt;
*&#039;&#039;&#039;HideResource&#039;&#039;&#039; - Hide the Resource panel &lt;br /&gt;
&lt;br /&gt;
=== [[LetterBox|LetterBox]] ===&lt;br /&gt;
&lt;br /&gt;
Disable commands and go to a cinematic, letterbox view.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Enable&#039;&#039;&#039; - 1 to turn letterbox mode on, 0 to turn it off &lt;br /&gt;
*&#039;&#039;&#039;Snap&#039;&#039;&#039; - 1 to immediately go to/from letterbox mode instead of fading in/out &lt;br /&gt;
&lt;br /&gt;
=== [[MoveUnit|MoveUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Move an army to a location without stopping to fight&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the unit to be moved &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - x/y coordinates to move to &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - 1 to repeat this command indefinitely. Use with multiple MoveUnit commands to create a patrol path. &lt;br /&gt;
*&#039;&#039;&#039;Stop&#039;&#039;&#039; - 1 to stop the unit &lt;br /&gt;
&lt;br /&gt;
=== [[Objective|Objective]] ===&lt;br /&gt;
&lt;br /&gt;
Use this to set objective notifications for the player (so they know what to do).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the objective, use this name when checking or hiding it. &lt;br /&gt;
*&#039;&#039;&#039;Hide&#039;&#039;&#039; - If this objective should be hidden or not, usually this means the objective is complete. &lt;br /&gt;
*&#039;&#039;&#039;String&#039;&#039;&#039; - What the objective displays on the screen. &lt;br /&gt;
*&#039;&#039;&#039;SetCheck&#039;&#039;&#039; - If the objective checkbox is checked or not. &lt;br /&gt;
&lt;br /&gt;
=== [[Restrict|Restrict]] ===&lt;br /&gt;
&lt;br /&gt;
To block the player from being able to access objects in the game.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - Unit, Building, Research or Orbital. Whatever type of object that is being restricted. &lt;br /&gt;
*&#039;&#039;&#039;ID&#039;&#039;&#039; - The name of the object being restricted. &lt;br /&gt;
*&#039;&#039;&#039;Enable&#039;&#039;&#039; - Set this to 1 to enable the object. You can use this to restrict something early in the scenario and then enable it later on (for example: when the player accomplishes an objective or after a set amount of time). &lt;br /&gt;
&lt;br /&gt;
=== [[Reveal|Reveal]] ===&lt;br /&gt;
&lt;br /&gt;
Reveal the fog of war over a location&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of this reveal (so you can modify it with a later command) &lt;br /&gt;
*&#039;&#039;&#039;Enable&#039;&#039;&#039; - 1 to enable, 0 to disable &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - x/y coordinates of the center of the revealed area &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Radius of the area to be revealed &lt;br /&gt;
*&#039;&#039;&#039;RadarSize&#039;&#039;&#039; - Use to add a radar component to the reveal. Can be used with Size=&amp;quot;0&amp;quot; to create a radar-only reveal &lt;br /&gt;
&lt;br /&gt;
=== [[SpawnBuilding|SpawnBuilding]] ===&lt;br /&gt;
&lt;br /&gt;
Places a building on the map.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name you assign to the building. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - The name of the building type being created. &lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player who will own the building. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the building will be placed. &lt;br /&gt;
*&#039;&#039;&#039;NoDeath&#039;&#039;&#039; - Set this to &amp;quot;1&amp;quot; to make the unit immortal (you can still kill it with a scripted DestroyBuilding command) &lt;br /&gt;
&lt;br /&gt;
=== [[SpawnUnit|SpawnUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Places a unit on the map.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name you assign to the unit. &lt;br /&gt;
*&#039;&#039;&#039;Parent&#039;&#039;&#039; - The army the unit will belong to (used to make it easier to issue moves). &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - The type of unit being created. &lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player that will own the unit. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the unit will be created. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Command|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the variable &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The value to be used in the operation &lt;br /&gt;
*&#039;&#039;&#039;Min&#039;&#039;&#039; - Minimum value for random functions &lt;br /&gt;
*&#039;&#039;&#039;Max&#039;&#039;&#039; - Maximum value for random functions &lt;br /&gt;
*&#039;&#039;&#039;Operation&#039;&#039;&#039; - Operation to be performed &lt;br /&gt;
**&amp;quot;=&amp;quot; or &amp;quot;Set&amp;quot; - set to the value &lt;br /&gt;
**&amp;quot;+&amp;quot; or &amp;quot;Add&amp;quot; - add value &lt;br /&gt;
**&amp;quot;-&amp;quot; or &amp;quot;Sub&amp;quot; - subtract value &lt;br /&gt;
**&amp;quot;Rand&amp;quot; or &amp;quot;SetRand&amp;quot; - set to a random value between Min and Max &lt;br /&gt;
**&amp;quot;AddRand&amp;quot; - add a random value between Min and Max &lt;br /&gt;
**&amp;quot;SubRand&amp;quot; - subtract a random value between Min and Max &lt;br /&gt;
&lt;br /&gt;
[[Category:Modding]] [[Category:Commands]]&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Modders_Guide&amp;diff=9614</id>
		<title>Modders Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Modders_Guide&amp;diff=9614"/>
		<updated>2018-03-09T05:27:08Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Current Limitations (Ashes 2.7) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page provides information for players looking to create mods for the game. We have separate guides for the [[Map Editor]] and [[Scenario Editor]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ashes of the Singularity gives you access to a powerful strategy game engine to create your own scenarios, objects and worlds. The designers have had a lot of fun creating scenarios for the game, and you will have access to the same features they had to create your own.&lt;br /&gt;
&lt;br /&gt;
There is a lot to do in Ashes. But it was also built from the ground up to be mod friendly. Modders have access to the gameplay elements to change and tweak as they desire. This document will introduce some of what is possible, and we will make a map and a mod to take advantage of this.&lt;br /&gt;
&lt;br /&gt;
This is not always going to be a managed and curated editor with limited options. You can mod the game the same way the developers make changes to the game. Editors are nice because they typically keep you from doing “bad” things. But they also keep you from doing incredibly good things. An editor only allows you to do the things the developer set up for you to change. With direct access to the files you can do things the developer never expected. Sometimes that turns out horribly (okay, a lot of the time that turns out horribly), but sometimes it turns out brilliantly. We believe power trumps ease of use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Moddable Game Files ==&lt;br /&gt;
&lt;br /&gt;
Just as with the Map Editor, to enable the game modifications add the “-modding” (without the quotes) to the Launch Options for the game (in Steam, right-click the game, go to Properties, click Set Launch Options in the General tab). That will add a Modifications&amp;amp;nbsp;button to the main menu of the game. You will not be able to play multiplayer if you are using Mods.&lt;br /&gt;
&lt;br /&gt;
The game supports modding the directories Modders would be most interested in. These are:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;GameCore&#039;&#039;&#039;- The home of the most critical files, definitions for all the games units, buildings, weapons, orbital abilties, etc. This directory isn&#039;t additive, you make changes by replacing the file you want to change with a new one. For example, if you want to modify the hit poitns on the Zeus your mod will need to include a new UnitTemplates.csv file with the hit point value for the Zeus changed. &lt;br /&gt;
*&#039;&#039;&#039;Maps&#039;&#039;&#039;- For adding new maps with the mod. &lt;br /&gt;
*&#039;&#039;&#039;Scenario&#039;&#039;&#039;- For adding new scenarios with the&amp;amp;nbsp;mod. It is possible to modify existing scenarios with mods (by using the same name as that scenario file) but adding new scnearios with new names will be more common. &lt;br /&gt;
*&#039;&#039;&#039;UI&#039;&#039;&#039;- So a modder can add new art refered to by the Scenario file. &lt;br /&gt;
*&#039;&#039;&#039;UIText&#039;&#039;&#039;- For adding or changing existing text. Files placed here are additive (they don&#039;t need to replace an existing file). If you want to change a text string from the base game just include that string in your new text file and it will overwrite it. &lt;br /&gt;
&lt;br /&gt;
To create a mod add a directory in your My Games/Ashes of the Singularity - Escalation/Mods/ directory with the name of the mod you would like to use.&lt;br /&gt;
&lt;br /&gt;
[[File:ModDir.png|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
In the above example the name of the Mod is BalanceMod. There is an index.ashesmod file that is a text file that contains the details about the mod. When you start the game it will create a generic one for you but the format is as follows:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[AshesMod]&amp;lt;br /&amp;gt; Name=Balance Mod&amp;lt;br /&amp;gt; Author=Rob Brink&amp;lt;br /&amp;gt; Description=This is a Balance mod that also includes the Weehawken Scenario.&amp;lt;br /&amp;gt; Version=1.1.10&amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This is purely informational, its what is displayed by the mod on the mod screen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[File:ModScreen.png|right|300px|ModScreen.png]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Ashes can’t use a file if it is locked. If you have a file open with Excel and try to start Ashes, the game will likely crash. Close the file before starting Ashes.&lt;br /&gt;
&lt;br /&gt;
To use a mod go into the Modification screen from the main menu. You will see all of your Mods here and you can enable or disable them, and change the order they load in. &amp;amp;nbsp;This can also be changed by editing the&amp;amp;nbsp;My Games/Ashes of the Singularity - Escalation/Mods.ini file.&lt;br /&gt;
&lt;br /&gt;
=== Notable Files for Modding ===&lt;br /&gt;
&lt;br /&gt;
All files for modding are found in the Steamapps\Common\Ashes\Assets\ directory. Any text editor can be used, but I&#039;d recommend using a free program called CSVed as it&#039;ll make viewing and modifying values much easier. (If using CSVed enable &amp;quot;Use Start Row as Column Captions)&lt;br /&gt;
&lt;br /&gt;
The following files are the primary ones responsible for major gameplay changes:&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\BuffTemplates.csv&#039;&#039;&#039; - Controls the value of Dreadnought buffs.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\[[BuildingTemplates.csv]]&#039;&#039;&#039; - Controls build time, cost, armor, HP, and more for all buildings.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\BuildingUpgrades.csv&#039;&#039;&#039; - Upgrade path for base defenses.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\DefaultPlayerAI.xml&#039;&#039;&#039; - Controls difficulty handicaps, personality types and armies built by the AI.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\Research.csv&#039;&#039;&#039; - Pricing of Quantum Upgrades.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\UnitPanel.csv&#039;&#039;&#039; - Controls the interface of build menus.  &lt;br /&gt;
* &#039;&#039;&#039;\GameCore\[[UnitTemplates.csv]]&#039;&#039;&#039; - Controls build time, cost, armor, HP, and more for all units.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\WeaponVisual.csv&#039;&#039;&#039; - Controls visual weapon alignment and other weapon cosmetics.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\BuildingModules\&#039;&#039;Sample.csv&#039;&#039;&#039;&#039;&#039; - Controls which weapons and ConstructionModules structures have.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\UnitModules\&#039;&#039;Sample.csv&#039;&#039;&#039;&#039;&#039; - Controls which weapons, ConstructionModule and SteeringModules units have.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\ConstructionModuleTemplates.csv&#039;&#039;&#039; - Controls which ConstructionLists a ConstructionModule uses.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\DroneBayModuleTemplates.csv&#039;&#039;&#039; - Controls which drones or other units are spawned by units such as Drone Hives.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\ResourceModuleTemplates.csv&#039;&#039;&#039; - Controls the amount of resources and storage generated by structures and upgrades.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\[[SteeringModuleTemplates.csv]]&#039;&#039;&#039; - Controls the movement behaviour of units when engaging the enemy such as desired attack range.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\[[WeaponModuleTemplates.csv]]&#039;&#039;&#039; - Controls rate of fire, range, targeting priority, damage, and everything else for all weapons. Orbital Abilities and healing weapons are also included here.&lt;br /&gt;
* &#039;&#039;&#039;\GameCore\ModuleTemplates\ConstructionLists\&#039;&#039;Sample.csv&#039;&#039;&#039;&#039;&#039; - Controls what units and structures are build able in a ConstructionLists.&lt;br /&gt;
* &#039;&#039;&#039;\Formations\FlockerTemplates.csv&#039;&#039;&#039; - Controls movement profiles for units.&lt;br /&gt;
* &#039;&#039;&#039;\Physics\RigidBodyTemplates.csv&#039;&#039;&#039; - Controls physics for units, affecting things such as pathing.&lt;br /&gt;
* &#039;&#039;&#039;\UIText\BuildingText.csv&#039;&#039;&#039; - Holds text strings used for in-game display of building names and descriptions&lt;br /&gt;
* &#039;&#039;&#039;\UIText\UnitText.csv&#039;&#039;&#039; - Holds text strings used for in-game display of unit names and descriptions&lt;br /&gt;
* &#039;&#039;&#039;\UIText\ModuleText.csv&#039;&#039;&#039; - Holds text strings used for in-game display of weapon modules and Orbital Abilities&lt;br /&gt;
* &#039;&#039;&#039;\UIText\Text.csv&#039;&#039;&#039; - Holds text strings used for game UI and other miscellaneous things. &lt;br /&gt;
&lt;br /&gt;
=== File Mod Example ===&lt;br /&gt;
&lt;br /&gt;
There are a lot of files, with a lot of fields that can be tweaked and changed. For this demo we are going to mess with my favorite file, &#039;&#039;&#039;[[UnitTemplates.csv|UnitTemplates.csv]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 8.png|thumb|right|200px|UnitTemplates.csv]]&lt;br /&gt;
&lt;br /&gt;
In this screenshot I’ve opened [[UnitTemplates.csv|UnitTemplates.csv]] with Excel, because it makes it easier for me to work with, but Excel isn’t required. Notepad could be used to modify the file. If you use Excel remember to save it as a csv file.&lt;br /&gt;
&lt;br /&gt;
There are a lot of fields that can be modified. In this screenshot we can see:&lt;br /&gt;
&lt;br /&gt;
*Max HPs &lt;br /&gt;
*Max Energy &lt;br /&gt;
*Energy Per Second &lt;br /&gt;
*Armor &lt;br /&gt;
*Heal Rate &lt;br /&gt;
*Max Shields &lt;br /&gt;
*Shield Regen Rate &lt;br /&gt;
*Radar Radius &lt;br /&gt;
*Cost Metal &lt;br /&gt;
*Cost Data &lt;br /&gt;
*Cost Energy &lt;br /&gt;
*Cost Logistics &lt;br /&gt;
*Construction Time &lt;br /&gt;
&lt;br /&gt;
Some of these fields aren’t named the same as they are in game. Names change during the course of development, and we didn’t want to go back and change all these definitions to match each time they do. Because of that you may have to experiment a bit to see how things match. For example, PHC_Smarty is the Smarty System, and Cost Data is actually the Radioactive cost of the unit. You can check out the translation tables in ..\Ashes of the Singularity\Assets\UIText\ directory to see how raw assets relate to in game assets.&lt;br /&gt;
&lt;br /&gt;
Using this file alone, and just the things in this screenshot (there are many more fields in UnitTemplates.csv) we can dramatically alter the balance and design of the game. Let’s use the above to create a new game variant I call the &#039;&#039;&#039;Swarm Mod&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
I love the scale of Ashes, I love large battles. So this mod is going to make even larger battles possible and we are going to get into them fast. To do that I’m going to make the following changes:&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 9.png|thumb|right|200px|UnitTemplates.csv, modded]]&lt;br /&gt;
&lt;br /&gt;
I’ve reduced the Metal, Radioactives, Logistics and Construction time costs by 90%. I’ve reduce the Logistics costs of T1 units to 0 (so you can have as many as you want). With these changes factories should produce 10 units in the time it took to produce 1 before. As long as you can keep feeding the (dramatically reduced) resource costs, units should come out of factories in an endless stream, like a tower defense game on steroids.&lt;br /&gt;
&lt;br /&gt;
There are a lot of ways to tweak this concept. I could have kept the Metal and Radioactive costs the same and then the player would be strongly incented to claim and upgrade regions to keep his factories fed. I could have just halved the costs rather than dropping them by 90%. I could have increased the resource gathering rates of upgraded metal and radioactive mines rather than lowering costs to incent players to invest in their regions.&lt;br /&gt;
&lt;br /&gt;
But for this we are going crazy. Everything gets very cheap. Massive armies can be built from the start of the game. Those poor creeps won’t know what hit them. And be prepared to be sieged by thousands of units.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 10.png|thumb|right|200px|Swarms of frigates!]]&lt;br /&gt;
&lt;br /&gt;
This is 5 minutes into the game. I only have 2 factories putting out an endless stream of Brutes. I make an army out of them and in the time it takes to do that there are a bunch more waiting to be added. So I find that it works just as well to set the rally point of the factory to where I want to attack, so that my river of death flows out to destroy it.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 11.png|thumb|right|200px|Pew! Pew pew!]]&lt;br /&gt;
&lt;br /&gt;
The AI has adapted to the new lower costs and is meeting my endless streams with its own. Unlike me it has opted to go with some cheaply produced dreadnoughts. The game lasts for 45 minutes, and there is a battle waging between my endless armies and his at this chokepoint for nearly all of it. It isn’t until I win more minor battles on some of outskirt regions (to take the resources which even at 90% off still become critical) and I send a strike force around to take out his factories that I cause his production chain to falter and begin to break through.&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 12.png|thumb|right|200px|Pewpewpew!]]&lt;br /&gt;
&lt;br /&gt;
I had to adjust away from my typical [[Artemis|Artemis]] (long range missile ships) to Nemesis (which are really good against enemy dreadnoughts) to be able to begin killing them faster than he could produce them. I also needed to invest heavily in anti-air [[Apollo|Apollos]] to counter the AI’s strike fleets of aircraft that nearly cost me the game.&lt;br /&gt;
&lt;br /&gt;
Once the lines were broken I turned the biggest Ashes armada I had ever controlled against his Nexus. There were a lot of dreadnoughts fighting their way up that hill, and the explosions, missile trails and laser blasts cut through and won me the game.&lt;br /&gt;
&lt;br /&gt;
Overall it is amazing how much game play can change with these changes. If I were to do it again I might keep the reduced cost overall, but maybe just 50% off rather than 90%. I liked the larger armies, but it was a crazy experience more like fighting a fire than playing chess.&lt;br /&gt;
&lt;br /&gt;
If you decide to modify the csv files with a text editor (Notepad++ is my text editor of choice) you can do everything I was doing in Excel, it just isn’t formatted into columns to be easy to read. Instead it is raw text like the following:&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 13.png|thumb|right|200px|A .csv file in Notepad++]]&lt;br /&gt;
&lt;br /&gt;
Modifying the files this way works, you just need to count the amount of fields, remembering that commas separate the fields (CSV stands for Comma Separated Values) to get to the right values.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Map to a Mod ===&lt;br /&gt;
&lt;br /&gt;
It is also possible to add a custom map to a Mod. &amp;amp;nbsp;The in-game map editor will always create a map in the default \Assets\Maps\&amp;lt;mapname&amp;gt; directory. &amp;amp;nbsp;To include that map in your mod, once created you&#039;ll need to move the entire map directory into your &amp;lt;ModName&amp;gt;\Maps directory. &amp;amp;nbsp;Once the map is in the mod directory and the game is restarted, the Map Editor will be able to edit the map directly from the mod directory.&lt;br /&gt;
&lt;br /&gt;
=== Current Limitations (Ashes 2.7) ===&lt;br /&gt;
&lt;br /&gt;
The Ashes developers are working to expand Modding support, however there are a few significant limtations to the existing modification support.&lt;br /&gt;
&lt;br /&gt;
The following files from the Ashes \Assets\ directory are currently NOT modifiable.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;\Audio\&#039;&#039;&#039;: Contains the audio used for in game effects and voice overs. &lt;br /&gt;
*&#039;&#039;&#039;\Units\&#039;&#039;&#039;: Contains the models and textures for all the units in the game. &lt;br /&gt;
*&#039;&#039;&#039;\Buildings\&#039;&#039;&#039;: Contains the models and textures for all the buildings in the game. &lt;br /&gt;
Several gameplay features are currently drawn from game code and not able to be modified via the csv files:&lt;br /&gt;
* &#039;&#039;&#039;Dreadnought Upgrades&#039;&#039;&#039;&lt;br /&gt;
Values for Dreadnought upgrades such as the rate of regeneration or weapon damage can be modified, but changing the upgrades and their unlock sequence is not configurable.&lt;br /&gt;
* &#039;&#039;&#039;Orbital Abilities&#039;&#039;&#039;&lt;br /&gt;
Values for Quantum Upgrades such as the damage and cost can be modified via WeaponModules.csv, but changing the utility and availability is not configurable&lt;br /&gt;
* &#039;&#039;&#039;Quantum Upgrades&#039;&#039;&#039;&lt;br /&gt;
Values for the Quantum Upgrades such as the cost and bonus can be modified, but changing the utility and availability is not configurable&lt;br /&gt;
&lt;br /&gt;
=== Safe Mode ===&lt;br /&gt;
&lt;br /&gt;
If your Ashes instalation with Mods gets into a state where the game fails to load. It is possible to still load the game via safe mode. &amp;amp;nbsp;Safe mode will not load any mods, but will still present the user interface for enabling and disabling mods. &amp;amp;nbsp;You can open the interface, disable the offending Mod, and restart Ashes in the normal mode.&lt;br /&gt;
&lt;br /&gt;
To start safe mode, select the option from the launch menu in steam, or add &amp;quot;-safe&amp;quot; to the command line arguments.&lt;br /&gt;
&lt;br /&gt;
== Creating New Units&amp;amp;nbsp;(Work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
With Escalation 2.4, modders are&amp;amp;nbsp;able to introduce their own custom units into the game as mods.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Adding a new unit to Ashes can be a complicated process, so to make it easier for modders to follow along with this guide, we have provided a sample mod of a custom unit&amp;amp;nbsp;called the &amp;quot;Little Boy&amp;quot;. The Little Boy&amp;amp;nbsp;&amp;lt;ref name=&amp;quot;Little Boy&amp;quot;&amp;gt;Little Boy - https://en.wikipedia.org/wiki/Little_Boy&amp;lt;/ref&amp;gt;, named after the&amp;amp;nbsp;first atomic bomb deployed during World War II, is a Tier 1&amp;amp;nbsp;unit that&amp;amp;nbsp;shoots nuclear warheads from its single turret.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Download the tools required to build a unit mod from here:&amp;amp;nbsp;http://downloads.ashesofthesingularity.com/AshesModdingTools.zip&amp;lt;br /&amp;gt; Download the &amp;quot;LittleBoy&amp;quot; sample mod&amp;amp;nbsp;from here:&amp;amp;nbsp;http://downloads.ashesofthesingularity.com/AshesSampleMod.zip&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Anatomy of a Unit ===&lt;br /&gt;
&lt;br /&gt;
In order for a unit to appear in-game, a series of data (used to configure the visual aspect of the unit)&amp;amp;nbsp;and texture files must exist in the mod&#039;s folder structure. These files are:&lt;br /&gt;
&lt;br /&gt;
*{AssetName).FBX &lt;br /&gt;
*Textures (these are .dds files in various formats) &lt;br /&gt;
**Ambient Occlusion &lt;br /&gt;
**Diffuse &lt;br /&gt;
**Curvature &lt;br /&gt;
**World Space Normals &lt;br /&gt;
**Material Masks &lt;br /&gt;
**Team Color Masks &lt;br /&gt;
&lt;br /&gt;
*{AssetName}.MeshDesc &lt;br /&gt;
*{AssetName}.Palette &lt;br /&gt;
*{AssetName}_TimelineSet.xml &lt;br /&gt;
*Unit.AssetGroup &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The AssetGroup File ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The MeshDesc File ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The Palette File ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The TimelineSet File ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Design Guidelines for the 3D Model ===&lt;br /&gt;
&lt;br /&gt;
*Unit of Measurement: Centimeters (as a point of reference, the Nemesis is 56.75 cm long) &lt;br /&gt;
*Ideal Triangle/Quad&amp;amp;nbsp;counts: &lt;br /&gt;
**T1 Units:&amp;amp;nbsp; &lt;br /&gt;
**T2 Units: 5,000 - 15,000 tris / 2,500 - 7,500 quads &lt;br /&gt;
**T3 Units: 40,000 - 60,000 tris / 20,000 - 30,000 quads &lt;br /&gt;
**T4 Units:&amp;amp;nbsp;40,000 - 60,000 tris / 20,000 - 30,000 quads &lt;br /&gt;
**Buildings:&amp;amp;nbsp;45,000 - 55,000 tris / 22,500 - 27,500 quads or less &lt;br /&gt;
&lt;br /&gt;
*All models must be exported as a .FBX file with the&amp;amp;nbsp;triangulation option enabled. If the geometry is not triangulated, an error will be occur during the baking process. &lt;br /&gt;
*Each mesh should have its own UV sets. &lt;br /&gt;
*In general, every unique mesh should have it&#039;s own &amp;quot;palette&amp;quot; (which is represented as a record in an asset&#039;s .Palette file) and set of textures. Though, there are some cases where multiple meshes should share the same palette and texture files (i.e. a unit that has multiple guns that are identical). &lt;br /&gt;
*Each mesh is required to have a 2nd UV set.&amp;amp;nbsp;This 2nd UV set is used to map a faction specific overlay texture to the model. This overlay texture provides additional details to units (i.e hull patterns).&amp;amp;nbsp;More information about&amp;amp;nbsp;this 2nd UV set will be provided in later sections of this guide.&amp;amp;nbsp;Best practice is to have the 2nd UV set be a copy of the primary UV set. Whenever making changes to the UVs, be sure to reflect the changes in the 2nd UV set (this will likely involve deleting the existing 2nd UV set and recreating it as a copy of the 1st). &lt;br /&gt;
*Every model must have a top-level mesh called &amp;quot;Root&amp;quot;. All other meshes (i.e. guns, turrets, arms, etc.) must be child meshes beneath this parent &amp;quot;Root&amp;quot; mesh. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Texture Authoring Guidelines and Best Practices ===&lt;br /&gt;
&lt;br /&gt;
*Author your textures in 4K resolution (3840 x 2160) and scale them down from there when getting them into the game. &lt;br /&gt;
**It is advised to NOT use 4K textures for your units in-game as they will likely have a negative impact on the performace of the game due to the large amount of VRAM needed. &lt;br /&gt;
&lt;br /&gt;
*Export your textures from whatever authoring software you are using (i.e. Maya, Substance Designer, etc.) in 3-channel (RGB, no alpha) .tif format. &lt;br /&gt;
**Ashes: Escalation expects all textures used in-game to be in .DDS format, but it is a good idea to maintain a &amp;quot;source&amp;quot; copy of your textures in .tif format as they&#039;re much easier to iterate on than .dds files. When you&#039;re ready to get your textures into the game, you&amp;amp;nbsp;should follow the process described in the following Required Textures and How to Convert Them To DDS Format section for how to generate the .dds version of your textures. &lt;br /&gt;
&lt;br /&gt;
*The best size for your textures covering&amp;amp;nbsp;the main body portion of your new unit (most likely the &amp;quot;Root&amp;quot; mesh) is 2K. &lt;br /&gt;
**Of course, there is nothing to stop you from scaling textures down even further if they looks good enough in-game at a smaller size.&amp;amp;nbsp;But, 2K is a good starting point, and at the same time it is definitely a size you don&#039;t want to surpass. &lt;br /&gt;
&lt;br /&gt;
*The textures for all the other parts of your unit that are small, like turrets, should be at least 1/2 the size of the main body textures. So, if your main body textures are 2K, your turrets should be no larger than 1K. &lt;br /&gt;
**If the turrets are small enough, it is a good idea to experiment with smaller sized textures, like 512 and 256. &lt;br /&gt;
&lt;br /&gt;
*Be sure your textures are sized in increments of the power of 2 so that MIPs can be properly generated during the DDS conversion process. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Required Textures and How to Convert Them To DDS Format ===&lt;br /&gt;
&lt;br /&gt;
The following textures are required to be defined in the unit&#039;s Palette file, and must have the provided DDS format:&lt;br /&gt;
&lt;br /&gt;
*Ambient Occlusion - BC4_UNORM &#039;&#039;(ex. Root_AO.dds in the LittleBoy mod)&#039;&#039; &lt;br /&gt;
*Diffuse - BC7_UNORM&amp;amp;nbsp;&#039;&#039;(ex. Root_Color.dds in the LittleBoy mod)&#039;&#039; &lt;br /&gt;
*Curvature - BC5_UNORM &#039;&#039;(ex. Root_Curvature.dds in the LittleBoy mod)&#039;&#039; &lt;br /&gt;
*World Space Normals - R10G10B10A2_UNORM&amp;amp;nbsp;&#039;&#039;(ex. Root_Normals.dds in the LittleBoy mod)&#039;&#039; &lt;br /&gt;
*Team Color Masks -&amp;amp;nbsp;BC4_UNORM&amp;amp;nbsp;&#039;&#039;(ex. Root_TeamColor_MaskArray.dds in the LittleBoy mod)&#039;&#039; &lt;br /&gt;
*Material Masks -&amp;amp;nbsp;BC4_UNORM&amp;amp;nbsp;&#039;&#039;(ex. Root_Material_MaskArray.dds in the LittleBoy mod)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; As a best practice, it is&amp;amp;nbsp;recommended that you export your textures from whatever graphics authoring tool you are using (i.e. Photoshop, Substance Designer, etc.) as .tif files WITHOUT the alpha channel. TIF files make a good medium for iterating on textures, as opposed to trying to make edits to the texture in DDS format (which can be difficult to do, depending on the format).&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== The Team Color Masks Texture ====&lt;br /&gt;
&lt;br /&gt;
When setting up a Skirmish or a multiplayer game, the player gets to select up to 3 colors to represent their team. It is the purpose of the Team Color Mask texture to control how those 3 colors are shown on the unit in-game. A combination of these 4 separate masks make up the Team Color Masks texture:&lt;br /&gt;
&lt;br /&gt;
*TC1&amp;amp;nbsp;- The primary team color mask. Anywhere there is white in this mask, team color #1 will show up. &lt;br /&gt;
*TC2 - The secondary team color mask. Anywhere there is white in this mask, team color #2 will show up. &lt;br /&gt;
*TC3 - The trim team color mask. Anywhere there is white in this mask, team color #3 will show up. &lt;br /&gt;
*Decal - The decal mask. Anywhere that this mask is white, the Diffuse texture&amp;amp;nbsp;is used&amp;amp;nbsp;directly as the&amp;amp;nbsp;color.&amp;amp;nbsp;This mask is will appear on top of TC1, TC2 and TC3 and is the way you would include markings (or &amp;quot;decals&amp;quot;) and any other area on your unit that should remain the same color, regardless of the team colors picked by the player. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Using the OxTextureTool.exe tool, these 4 masks are combined into a single DDS file representing the TeamColorMasks texture. Within the package of files for the LittleBoy mode you will find the&amp;amp;nbsp;\SourceArt\maps\MakeTeamColorMask.bat script file. Open up this file to see the process for converting the TC1, TC2, TC3 and Decal mask files into the correct DDS format and then how to merge those 4 DDS files into a single &amp;quot;mask array&amp;quot; texture file. Here are the steps (you can follow allong in the MakeTeamColorMask.bat file):&lt;br /&gt;
&lt;br /&gt;
#(Lines 1-9) Run the texconv.exe tool against each set of TC1, TC2, TC3 and Decal mask files created for each of your palettes (reference the \Units\PHC\LittleBoy\LittleBoy.Palette file for which Palettes have been defined for the LittleBoy mod) &lt;br /&gt;
#(Lines 12 &amp;amp; 13) Run the oxtexturetool.exe tool against each set of converted TC1, TC2, TC3 and Decal files output by the texconv.exe tool. Note that the -o argument passed to the oxtexturetool command is the name of the output mask array file you want generated. &lt;br /&gt;
&lt;br /&gt;
It&#039;s important to note that the file names used in the&amp;amp;nbsp;\SourceArt\maps\MakeTeamColorMask.bat script file of the LittleBoy mod are specific to the LittleBoy unit, and that you may name these source files however you like.&lt;br /&gt;
&lt;br /&gt;
The Team Color Masks texture is set in the unit&#039;s Palette file via the &amp;quot;TeamColorMasks&amp;quot; column. Whatever you provide as the file name that the OxTextureTool.exe tool&amp;amp;nbsp;outputs (via the&amp;amp;nbsp;-o&amp;amp;nbsp;argument) must match what you provide for &amp;quot;TeamColorMasks&amp;quot; column in your unit&#039;s Palette file. What you provide for the &amp;quot;teamColorMasks&amp;quot; column in your unit&#039;s Palette file must be a path to the file, relative to the root mods directory.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
[provide Tools package that contains OxTextureTool, TexConv, EasyBake&amp;amp;nbsp;and some .bat script files]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Material Masks Texture ====&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
PHC Unit Materials&lt;br /&gt;
&lt;br /&gt;
*MM1 – Painted Metal &lt;br /&gt;
**This is meant to represent a painted surface. &lt;br /&gt;
**Most of a PHC unit uses this material. This material responds to the TeamColor_MaskArray texture as follows: &lt;br /&gt;
***Base color of Painted Metal is a constant mid-grey color (hard coded) &lt;br /&gt;
***TC1 – Team color 1, the primary team color. Anywhere this is white, teamcolor 1 will show up. &lt;br /&gt;
***TC2 – Team color 2, secondary team color. Anywhere this is white, teamcolor 2 will show up. &lt;br /&gt;
***TC3 – Team color 3, trim team color. Anywhere this is white, teamcolor 3&amp;amp;nbsp;will show up. &lt;br /&gt;
***Decal – Decal mask, anywhere that this mask is white it uses the ColorMap directly as the diffuse color. This overrides all the other teamcolor masks. &lt;br /&gt;
***Unlike material masks, you won’t get overbright textures if these masks overlap, you’ll just get overlap like layers in photoshop, in this order (top down): &lt;br /&gt;
****Decal &lt;br /&gt;
****TC3 &lt;br /&gt;
****TC2 &lt;br /&gt;
****TC1 &lt;br /&gt;
****Base color &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Painted Metal is affected by the Curvature Map in that edges will be worn off to expose MM2 (Bare Metal). &lt;br /&gt;
*Painted Metal also uses the panel detail texture found in Assets/Material/PHC_Unit_Panels.dds that has the following channels: &lt;br /&gt;
**R – Panel dirt &lt;br /&gt;
**G – Panel edge-wear &lt;br /&gt;
**B - AO &lt;br /&gt;
**A – Overall color variation &lt;br /&gt;
***White means lighten the color &lt;br /&gt;
***50% Grey means do not change the color &lt;br /&gt;
***Black means darken the color &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*MM2 – Bare Metal &lt;br /&gt;
**Dark silvery material. &lt;br /&gt;
**This material uses the Curvature map and panel-detail map to darken the metal in crevices and shine and brighten it on edges. &lt;br /&gt;
**This material does not respond to the Color map in any way. &lt;br /&gt;
&lt;br /&gt;
*MM3 – Emissive &lt;br /&gt;
**Glowing parts of the model (running lights, etc.) &lt;br /&gt;
**The brightness of the emissive lights is set in the material. However, the material reacts to the Color map by multiplying it in. You can set up the color you want the emissive to be by coloring that area of the Color map. Generally those have been set up with a fade around the edges to make the glow look softer and mip-map more nicely with distance. &lt;br /&gt;
&lt;br /&gt;
*MM4 – EngineEmissive &lt;br /&gt;
**Glowing parts of the hover pods/engines &lt;br /&gt;
**This works much the same way the MM3 Emissive material works, but it uses the color map slightly differently. It multiplies the Color map as a grey-scale value with the engine color for that team (set up with the team colors). You still get the effect of the edge fading like regular emissives, but not the color tinting. &lt;br /&gt;
**The overall brightness of the Engine Emissive material is scaled by the amount of “thrust” being applied to the object. Engines brighten when the unit is moving itself, darken when it’s not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Dust – This is not directly controlled by artists. A combination of factors determine where dust is applied, the dust overlays all other materials (except emissives). &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The FBX File ===&lt;br /&gt;
&lt;br /&gt;
The models for all buildings and units in Ashes: Escalation were authored in either Maya or 3dsMax. Of course, this does not mean that other tools like Blender or Modo can&#039;t be used. Be aware though that there are minor differences in the ways that each of these 3D modeling tools export FBX files and that their output can be&amp;amp;nbsp;inconsistent between what each tool outputs. This can have the effect of&amp;amp;nbsp;introducing&amp;amp;nbsp;flaws into your model when bringing them into the game.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Baking the Normals ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Baking the Asset into the Game ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Fatal Error: Assert Fail: pMesh-&amp;gt;GetPolygonSize(0) == Model::eNumIndiciesPerPoly File&lt;br /&gt;
&lt;br /&gt;
Models are required to have triangulated polygons.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
When running the Texconv, OXTextureTool or EasyBake tools, if you are prompted with an error dialog saying MSVCP140D.dll or VCRUNTIME140D.dll or VCOMP140D.dll is missing:&lt;br /&gt;
&lt;br /&gt;
You will need to install the Visual C++ Redistributable for Visual Studio 2015:&amp;amp;nbsp;https://www.microsoft.com/en-US/download/details.aspx?id=48145&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== When To Create Additional LODs ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9613</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9613"/>
		<updated>2018-02-23T11:34:50Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9612</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9612"/>
		<updated>2018-02-23T11:34:41Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9611</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9611"/>
		<updated>2018-02-23T11:34:29Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9610</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9610"/>
		<updated>2018-02-23T11:34:19Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9609</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9609"/>
		<updated>2018-02-23T11:33:59Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Commenting Out Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9608</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9608"/>
		<updated>2018-02-23T11:33:21Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Commenting Out Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. I need to use an image to show which characters are used to comment out.&lt;br /&gt;
[[File:Capture.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=File:Capture.jpg&amp;diff=9607</id>
		<title>File:Capture.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=File:Capture.jpg&amp;diff=9607"/>
		<updated>2018-02-23T11:33:06Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9606</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9606"/>
		<updated>2018-02-23T11:31:16Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Commenting Out Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, place &amp;lt;!-- in front of a section and --&amp;gt; at the end. Anything in the middle will be disabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Comment out --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9605</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9605"/>
		<updated>2018-02-23T11:29:59Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Commenting Out Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;quot;&amp;lt;!--&amp;quot; to the front and &amp;quot;--&amp;gt;&amp;quot; to the end of what you want commented out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Comment out --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9604</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9604"/>
		<updated>2018-02-23T11:29:35Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Commenting Out Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;quot;&amp;lt;!--&amp;quot; to the front and &amp;quot;--&amp;gt;&amp;quot; to the end of what you want commented out.&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9603</id>
		<title>Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9603"/>
		<updated>2018-02-22T11:11:21Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Var */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding]]&lt;br /&gt;
&#039;&#039;&#039;Triggers&#039;&#039;&#039; are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
== Active vs Inactive ==&lt;br /&gt;
&lt;br /&gt;
Triggers are &amp;quot;active&amp;quot; by default, meaning they will fire whenever their condition is met. They can be set to Inactive manually in the script.&lt;br /&gt;
&lt;br /&gt;
Triggers set themselves to Inactive when they fire. This means that if you want something to be repeatable, you need to reactivate it somewhere in the script.&lt;br /&gt;
&lt;br /&gt;
== Repeating Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;ActivateTrigger=&amp;quot;triggername&amp;quot;/&amp;gt; to tell a trigger to activate itself will make it repeatable (if you want something to happen every time the player builds a Dreadnought, for example, or waves of enemies to spawn and attack every 15 seconds).&lt;br /&gt;
&lt;br /&gt;
== Conditional Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using the OtherTrigger and NotOtherTrigger arguments is a way to gate your scenario&#039;s logic. For purposes of those arguments, a trigger &#039;counts&#039; &#039;&#039;&#039;if it has been activated at least once&#039;&#039;&#039; during the game. However, you can&#039;t stack multiple Conditional Triggers. To word it another way, OtherTrigger=&amp;quot;Triggername&amp;quot; means only run the Trigger if this Trigger has happened, while NotOtherTrigger means only run the Trigger if this other Trigger hasn&#039;t happened.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to &amp;quot;un-activate&amp;quot; a trigger, as far as OtherTrigger and NotOtherTrigger are concerned.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what that may look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Trigger&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, the NotOtherTrigger means do not run the unit spawn trigger if the SpawnSuppression Trigger has been activated, (a certain region has been captured.) Another example is NotOtherTrigger=&amp;quot;Difficulty4&amp;quot; means don&#039;t run the trigger if the player is playing on Expert.&lt;br /&gt;
&lt;br /&gt;
== Common Trigger Arguments ==&lt;br /&gt;
&lt;br /&gt;
All triggers share some attributes in common:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the trigger. Required. &lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - What type of trigger it is. See below. Required. &lt;br /&gt;
*&#039;&#039;&#039;Inactive&#039;&#039;&#039; - If this trigger is inactive, to activate use the ActivateTrigger option from another Trigger. &lt;br /&gt;
*&#039;&#039;&#039;OtherTrigger&#039;&#039;&#039; - Name of another trigger that must have fired before this one will activate. Use this to set multiple conditions on a trigger occurring. &lt;br /&gt;
*&#039;&#039;&#039;NotOtherTrigger&#039;&#039;&#039; - Inverse of OtherTrigger. If the other trigger has fired this trigger won’t fire. Us this to create branching options in your scenario. &lt;br /&gt;
&lt;br /&gt;
== Trigger Types ==&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
=== [[Area_Trigger|Area]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when the human player moves a unit into the area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Center&#039;&#039;&#039; - Map coordinates of the center of the area. Required. &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Size of the area. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - Template name of the unit that can trigger this. If you want it to fire if any unit enters the area, do not specify a Template argument. &lt;br /&gt;
&lt;br /&gt;
=== [[Build_Trigger|Build]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a human player builds structures or units.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The template of the building that will fire this trigger &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - Set to &amp;quot;1&amp;quot; if the target is a building &lt;br /&gt;
*&#039;&#039;&#039;Count&#039;&#039;&#039; - How many of the target template must be built to fire the trigger (default 1) &lt;br /&gt;
&lt;br /&gt;
=== [[Destruction_Trigger|Destruction]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when something specific dies.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
&lt;br /&gt;
=== [[Difficulty_Trigger|Difficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Fires at the beginning of a scenario if the given difficulty was chosen&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The given difficulty (0 for Much Easier, up to 4 for Much Harder) &lt;br /&gt;
&lt;br /&gt;
=== [[NamedCreate_Trigger|NamedCreate]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a specific unit or building is spawned via a script.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
&lt;br /&gt;
=== [[Research_Trigger|Research]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a player researches a Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player doing the research &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the tech &lt;br /&gt;
&lt;br /&gt;
=== [[Timer_Trigger|Timer]] ===&lt;br /&gt;
&lt;br /&gt;
Fires after a delay.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Time -&#039;&#039;&#039; Time in seconds after this gets triggered that it takes place. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Trigger|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Fires if a variable meets given criteria&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Var&#039;&#039;&#039; - The name of the variable to check &lt;br /&gt;
*&#039;&#039;&#039;Operator&#039;&#039;&#039; - What logical operator to use when evaluating the variable (equal to, less than, etc) &#039;&#039;&#039;[ == | &amp;gt;= | &amp;lt;= | &amp;gt; | &amp;lt; |&amp;amp;nbsp;!= ]&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The (integer) value to compare the variable against &lt;br /&gt;
*&#039;&#039;Example: &amp;lt;Trigger Name=&amp;quot;tWeasleyDead&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vWeasleyDead&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; &amp;gt; - this fires when the &amp;quot;vWeasleyDead&amp;quot; variable is equal to 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is useful if you want to make capturing 4 regions or killing 4 AI players do something, but only when all of them have been done at the same time. However, you have to be careful in the case of capturing all 4 regions that it doesn&#039;t get messed up by if the AI captures the region back. This is where conditional triggers are essential.&lt;br /&gt;
&lt;br /&gt;
=== [[ZoneCapture_Trigger|ZoneCapture]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a region is captured.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Owner&#039;&#039;&#039; - Player who must capture this region to fire the trigger. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Map coordinates of the generator/Nexus.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9602</id>
		<title>Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9602"/>
		<updated>2018-02-22T11:11:07Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Var */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding]]&lt;br /&gt;
&#039;&#039;&#039;Triggers&#039;&#039;&#039; are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
== Active vs Inactive ==&lt;br /&gt;
&lt;br /&gt;
Triggers are &amp;quot;active&amp;quot; by default, meaning they will fire whenever their condition is met. They can be set to Inactive manually in the script.&lt;br /&gt;
&lt;br /&gt;
Triggers set themselves to Inactive when they fire. This means that if you want something to be repeatable, you need to reactivate it somewhere in the script.&lt;br /&gt;
&lt;br /&gt;
== Repeating Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;ActivateTrigger=&amp;quot;triggername&amp;quot;/&amp;gt; to tell a trigger to activate itself will make it repeatable (if you want something to happen every time the player builds a Dreadnought, for example, or waves of enemies to spawn and attack every 15 seconds).&lt;br /&gt;
&lt;br /&gt;
== Conditional Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using the OtherTrigger and NotOtherTrigger arguments is a way to gate your scenario&#039;s logic. For purposes of those arguments, a trigger &#039;counts&#039; &#039;&#039;&#039;if it has been activated at least once&#039;&#039;&#039; during the game. However, you can&#039;t stack multiple Conditional Triggers. To word it another way, OtherTrigger=&amp;quot;Triggername&amp;quot; means only run the Trigger if this Trigger has happened, while NotOtherTrigger means only run the Trigger if this other Trigger hasn&#039;t happened.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to &amp;quot;un-activate&amp;quot; a trigger, as far as OtherTrigger and NotOtherTrigger are concerned.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what that may look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Trigger&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, the NotOtherTrigger means do not run the unit spawn trigger if the SpawnSuppression Trigger has been activated, (a certain region has been captured.) Another example is NotOtherTrigger=&amp;quot;Difficulty4&amp;quot; means don&#039;t run the trigger if the player is playing on Expert.&lt;br /&gt;
&lt;br /&gt;
== Common Trigger Arguments ==&lt;br /&gt;
&lt;br /&gt;
All triggers share some attributes in common:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the trigger. Required. &lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - What type of trigger it is. See below. Required. &lt;br /&gt;
*&#039;&#039;&#039;Inactive&#039;&#039;&#039; - If this trigger is inactive, to activate use the ActivateTrigger option from another Trigger. &lt;br /&gt;
*&#039;&#039;&#039;OtherTrigger&#039;&#039;&#039; - Name of another trigger that must have fired before this one will activate. Use this to set multiple conditions on a trigger occurring. &lt;br /&gt;
*&#039;&#039;&#039;NotOtherTrigger&#039;&#039;&#039; - Inverse of OtherTrigger. If the other trigger has fired this trigger won’t fire. Us this to create branching options in your scenario. &lt;br /&gt;
&lt;br /&gt;
== Trigger Types ==&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
=== [[Area_Trigger|Area]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when the human player moves a unit into the area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Center&#039;&#039;&#039; - Map coordinates of the center of the area. Required. &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Size of the area. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - Template name of the unit that can trigger this. If you want it to fire if any unit enters the area, do not specify a Template argument. &lt;br /&gt;
&lt;br /&gt;
=== [[Build_Trigger|Build]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a human player builds structures or units.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The template of the building that will fire this trigger &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - Set to &amp;quot;1&amp;quot; if the target is a building &lt;br /&gt;
*&#039;&#039;&#039;Count&#039;&#039;&#039; - How many of the target template must be built to fire the trigger (default 1) &lt;br /&gt;
&lt;br /&gt;
=== [[Destruction_Trigger|Destruction]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when something specific dies.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
&lt;br /&gt;
=== [[Difficulty_Trigger|Difficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Fires at the beginning of a scenario if the given difficulty was chosen&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The given difficulty (0 for Much Easier, up to 4 for Much Harder) &lt;br /&gt;
&lt;br /&gt;
=== [[NamedCreate_Trigger|NamedCreate]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a specific unit or building is spawned via a script.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
&lt;br /&gt;
=== [[Research_Trigger|Research]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a player researches a Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player doing the research &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the tech &lt;br /&gt;
&lt;br /&gt;
=== [[Timer_Trigger|Timer]] ===&lt;br /&gt;
&lt;br /&gt;
Fires after a delay.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Time -&#039;&#039;&#039; Time in seconds after this gets triggered that it takes place. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Trigger|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Fires if a variable meets given criteria&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Var&#039;&#039;&#039; - The name of the variable to check &lt;br /&gt;
*&#039;&#039;&#039;Operator&#039;&#039;&#039; - What logical operator to use when evaluating the variable (equal to, less than, etc) &#039;&#039;&#039;[ == | &amp;gt;= | &amp;lt;= | &amp;gt; | &amp;lt; |&amp;amp;nbsp;!= ]&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The (integer) value to compare the variable against &lt;br /&gt;
*&#039;&#039;Example: &amp;lt;Trigger Name=&amp;quot;tWeasleyDead&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vWeasleyDead&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; &amp;gt; - this fires when the &amp;quot;vWeasleyDead&amp;quot; variable is equal to 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is useful if you want to make capturing 4 regions or killing 4 AI players do something, but only when all of them have been done at the same time. However, you have to be careful in the case of capturing all 4 regions that it doesn&#039;t get messed up by if the AI captures the region back. This is where conditional triggers can be useful.&lt;br /&gt;
&lt;br /&gt;
=== [[ZoneCapture_Trigger|ZoneCapture]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a region is captured.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Owner&#039;&#039;&#039; - Player who must capture this region to fire the trigger. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Map coordinates of the generator/Nexus.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9601</id>
		<title>Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9601"/>
		<updated>2018-02-22T11:09:06Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Conditional Triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding]]&lt;br /&gt;
&#039;&#039;&#039;Triggers&#039;&#039;&#039; are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
== Active vs Inactive ==&lt;br /&gt;
&lt;br /&gt;
Triggers are &amp;quot;active&amp;quot; by default, meaning they will fire whenever their condition is met. They can be set to Inactive manually in the script.&lt;br /&gt;
&lt;br /&gt;
Triggers set themselves to Inactive when they fire. This means that if you want something to be repeatable, you need to reactivate it somewhere in the script.&lt;br /&gt;
&lt;br /&gt;
== Repeating Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;ActivateTrigger=&amp;quot;triggername&amp;quot;/&amp;gt; to tell a trigger to activate itself will make it repeatable (if you want something to happen every time the player builds a Dreadnought, for example, or waves of enemies to spawn and attack every 15 seconds).&lt;br /&gt;
&lt;br /&gt;
== Conditional Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using the OtherTrigger and NotOtherTrigger arguments is a way to gate your scenario&#039;s logic. For purposes of those arguments, a trigger &#039;counts&#039; &#039;&#039;&#039;if it has been activated at least once&#039;&#039;&#039; during the game. However, you can&#039;t stack multiple Conditional Triggers. To word it another way, OtherTrigger=&amp;quot;Triggername&amp;quot; means only run the Trigger if this Trigger has happened, while NotOtherTrigger means only run the Trigger if this other Trigger hasn&#039;t happened.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to &amp;quot;un-activate&amp;quot; a trigger, as far as OtherTrigger and NotOtherTrigger are concerned.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what that may look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Trigger&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, the NotOtherTrigger means do not run the unit spawn trigger if the SpawnSuppression Trigger has been activated, (a certain region has been captured.) Another example is NotOtherTrigger=&amp;quot;Difficulty4&amp;quot; means don&#039;t run the trigger if the player is playing on Expert.&lt;br /&gt;
&lt;br /&gt;
== Common Trigger Arguments ==&lt;br /&gt;
&lt;br /&gt;
All triggers share some attributes in common:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the trigger. Required. &lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - What type of trigger it is. See below. Required. &lt;br /&gt;
*&#039;&#039;&#039;Inactive&#039;&#039;&#039; - If this trigger is inactive, to activate use the ActivateTrigger option from another Trigger. &lt;br /&gt;
*&#039;&#039;&#039;OtherTrigger&#039;&#039;&#039; - Name of another trigger that must have fired before this one will activate. Use this to set multiple conditions on a trigger occurring. &lt;br /&gt;
*&#039;&#039;&#039;NotOtherTrigger&#039;&#039;&#039; - Inverse of OtherTrigger. If the other trigger has fired this trigger won’t fire. Us this to create branching options in your scenario. &lt;br /&gt;
&lt;br /&gt;
== Trigger Types ==&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
=== [[Area_Trigger|Area]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when the human player moves a unit into the area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Center&#039;&#039;&#039; - Map coordinates of the center of the area. Required. &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Size of the area. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - Template name of the unit that can trigger this. If you want it to fire if any unit enters the area, do not specify a Template argument. &lt;br /&gt;
&lt;br /&gt;
=== [[Build_Trigger|Build]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a human player builds structures or units.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The template of the building that will fire this trigger &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - Set to &amp;quot;1&amp;quot; if the target is a building &lt;br /&gt;
*&#039;&#039;&#039;Count&#039;&#039;&#039; - How many of the target template must be built to fire the trigger (default 1) &lt;br /&gt;
&lt;br /&gt;
=== [[Destruction_Trigger|Destruction]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when something specific dies.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
&lt;br /&gt;
=== [[Difficulty_Trigger|Difficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Fires at the beginning of a scenario if the given difficulty was chosen&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The given difficulty (0 for Much Easier, up to 4 for Much Harder) &lt;br /&gt;
&lt;br /&gt;
=== [[NamedCreate_Trigger|NamedCreate]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a specific unit or building is spawned via a script.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
&lt;br /&gt;
=== [[Research_Trigger|Research]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a player researches a Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player doing the research &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the tech &lt;br /&gt;
&lt;br /&gt;
=== [[Timer_Trigger|Timer]] ===&lt;br /&gt;
&lt;br /&gt;
Fires after a delay.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Time -&#039;&#039;&#039; Time in seconds after this gets triggered that it takes place. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Trigger|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Fires if a variable meets given criteria&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Var&#039;&#039;&#039; - The name of the variable to check &lt;br /&gt;
*&#039;&#039;&#039;Operator&#039;&#039;&#039; - What logical operator to use when evaluating the variable (equal to, less than, etc) &#039;&#039;&#039;[ == | &amp;gt;= | &amp;lt;= | &amp;gt; | &amp;lt; |&amp;amp;nbsp;!= ]&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The (integer) value to compare the variable against &lt;br /&gt;
*&#039;&#039;Example: &amp;lt;Trigger Name=&amp;quot;tWeasleyDead&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vWeasleyDead&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; &amp;gt; - this fires when the &amp;quot;vWeasleyDead&amp;quot; variable is equal to 1&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== [[ZoneCapture_Trigger|ZoneCapture]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a region is captured.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Owner&#039;&#039;&#039; - Player who must capture this region to fire the trigger. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Map coordinates of the generator/Nexus.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9600</id>
		<title>Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9600"/>
		<updated>2018-02-22T11:08:48Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Conditional Triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding]]&lt;br /&gt;
&#039;&#039;&#039;Triggers&#039;&#039;&#039; are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
== Active vs Inactive ==&lt;br /&gt;
&lt;br /&gt;
Triggers are &amp;quot;active&amp;quot; by default, meaning they will fire whenever their condition is met. They can be set to Inactive manually in the script.&lt;br /&gt;
&lt;br /&gt;
Triggers set themselves to Inactive when they fire. This means that if you want something to be repeatable, you need to reactivate it somewhere in the script.&lt;br /&gt;
&lt;br /&gt;
== Repeating Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;ActivateTrigger=&amp;quot;triggername&amp;quot;/&amp;gt; to tell a trigger to activate itself will make it repeatable (if you want something to happen every time the player builds a Dreadnought, for example, or waves of enemies to spawn and attack every 15 seconds).&lt;br /&gt;
&lt;br /&gt;
== Conditional Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using the OtherTrigger and NotOtherTrigger arguments is a way to gate your scenario&#039;s logic. For purposes of those arguments, a trigger &#039;counts&#039; &#039;&#039;&#039;if it has been activated at least once&#039;&#039;&#039; during the game. However, you can&#039;t stack multiple Conditional Triggers. To word it another way, OtherTrigger=&amp;quot;Triggername&amp;quot; means only run the Trigger if this Trigger has happened, while NotOtherTrigger means only run the Trigger if this other Trigger hasn&#039;t happened.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to &amp;quot;un-activate&amp;quot; a trigger, as far as OtherTrigger and NotOtherTrigger are concerned.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what that may look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&amp;lt;Trigger Name=&amp;quot;tNE_Spawn1&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vNE_Spawn&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; NotOtherTrigger=&amp;quot;tNE_SpawnSuppress&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;SpawnUnit Name=&amp;quot;uNE_Leader1&amp;quot; Template=&amp;quot;PHC_2_Zeus&amp;quot; Player=&amp;quot;5&amp;quot; Position=&amp;quot;-9344,-8064&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Trigger&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, the NotOtherTrigger means do not run the unit spawn trigger if the SpawnSuppression Trigger has been activated, (a certain region has been captured.) NotOtherTrigger=&amp;quot;Difficulty4&amp;quot; means don&#039;t run the trigger if the player is playing on Expert.&lt;br /&gt;
&lt;br /&gt;
== Common Trigger Arguments ==&lt;br /&gt;
&lt;br /&gt;
All triggers share some attributes in common:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the trigger. Required. &lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - What type of trigger it is. See below. Required. &lt;br /&gt;
*&#039;&#039;&#039;Inactive&#039;&#039;&#039; - If this trigger is inactive, to activate use the ActivateTrigger option from another Trigger. &lt;br /&gt;
*&#039;&#039;&#039;OtherTrigger&#039;&#039;&#039; - Name of another trigger that must have fired before this one will activate. Use this to set multiple conditions on a trigger occurring. &lt;br /&gt;
*&#039;&#039;&#039;NotOtherTrigger&#039;&#039;&#039; - Inverse of OtherTrigger. If the other trigger has fired this trigger won’t fire. Us this to create branching options in your scenario. &lt;br /&gt;
&lt;br /&gt;
== Trigger Types ==&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
=== [[Area_Trigger|Area]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when the human player moves a unit into the area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Center&#039;&#039;&#039; - Map coordinates of the center of the area. Required. &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Size of the area. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - Template name of the unit that can trigger this. If you want it to fire if any unit enters the area, do not specify a Template argument. &lt;br /&gt;
&lt;br /&gt;
=== [[Build_Trigger|Build]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a human player builds structures or units.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The template of the building that will fire this trigger &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - Set to &amp;quot;1&amp;quot; if the target is a building &lt;br /&gt;
*&#039;&#039;&#039;Count&#039;&#039;&#039; - How many of the target template must be built to fire the trigger (default 1) &lt;br /&gt;
&lt;br /&gt;
=== [[Destruction_Trigger|Destruction]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when something specific dies.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
&lt;br /&gt;
=== [[Difficulty_Trigger|Difficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Fires at the beginning of a scenario if the given difficulty was chosen&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The given difficulty (0 for Much Easier, up to 4 for Much Harder) &lt;br /&gt;
&lt;br /&gt;
=== [[NamedCreate_Trigger|NamedCreate]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a specific unit or building is spawned via a script.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
&lt;br /&gt;
=== [[Research_Trigger|Research]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a player researches a Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player doing the research &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the tech &lt;br /&gt;
&lt;br /&gt;
=== [[Timer_Trigger|Timer]] ===&lt;br /&gt;
&lt;br /&gt;
Fires after a delay.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Time -&#039;&#039;&#039; Time in seconds after this gets triggered that it takes place. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Trigger|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Fires if a variable meets given criteria&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Var&#039;&#039;&#039; - The name of the variable to check &lt;br /&gt;
*&#039;&#039;&#039;Operator&#039;&#039;&#039; - What logical operator to use when evaluating the variable (equal to, less than, etc) &#039;&#039;&#039;[ == | &amp;gt;= | &amp;lt;= | &amp;gt; | &amp;lt; |&amp;amp;nbsp;!= ]&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The (integer) value to compare the variable against &lt;br /&gt;
*&#039;&#039;Example: &amp;lt;Trigger Name=&amp;quot;tWeasleyDead&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vWeasleyDead&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; &amp;gt; - this fires when the &amp;quot;vWeasleyDead&amp;quot; variable is equal to 1&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== [[ZoneCapture_Trigger|ZoneCapture]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a region is captured.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Owner&#039;&#039;&#039; - Player who must capture this region to fire the trigger. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Map coordinates of the generator/Nexus.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9599</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9599"/>
		<updated>2018-02-22T11:04:34Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Mission Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain.&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9598</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9598"/>
		<updated>2018-02-22T11:04:12Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Mission Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Missions (scripting)|Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== [[Player (scripting)|Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9597</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9597"/>
		<updated>2018-02-22T11:03:39Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== [[Mission Definition]] ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== [[Player Definition]] ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== [[Triggers]] ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9596</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9596"/>
		<updated>2018-02-22T10:54:24Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options. There&#039;s a lot of terminology to learn for scripting, and not all of them are listed on this page but links are provided throughout to give you the full set of required terms.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9595</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9595"/>
		<updated>2018-02-22T10:52:23Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9594</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9594"/>
		<updated>2018-02-22T10:52:07Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Commenting Out Code ==&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9593</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9593"/>
		<updated>2018-02-22T10:51:45Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commenting Out Code ===&lt;br /&gt;
&lt;br /&gt;
Commenting out code is very useful to disable certain lines but without deleting them so you can easily place them back on. This is also useful for leaving notes so you remember what you are trying to do or just making it neater and easier to navigate. To comment out a section, add &amp;lt;!-- to the front and --&amp;gt; to the end of what you want commented out. &lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9592</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9592"/>
		<updated>2018-02-22T10:48:23Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Fixing Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;br /&gt;
*&#039;&#039;&#039;Empty Campaign Screen&#039;&#039;&#039; - If the campaign screen is empty with no campaigns or scenario missions listed, this means there is a grammar error in one of the scripts which has broken it and made it unable to be ran. You will have to identity the mistake and fix it. For example, having a Trigger without the &amp;gt; on the end or missing a quotation mark can cause this error. Identifying the issue can be time consuming, so it is recommended you make updates in small increments so you know where in the script the cause would be. One strategy to find these mistakes is to comment out entire sections of the script with &amp;lt;!-- on the front and --&amp;gt; on the end, and see if the problem persists. If you have commented out a large portion of the script and then the missions are now showing up, you have narrowed down the cause and you can comment more and more specific sections to location the issue.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9591</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9591"/>
		<updated>2018-02-22T10:44:46Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Consistent Crash&#039;&#039;&#039; - Often happening at the start of a scenario, if you have a crash that happens every time it is likely the result of trying to spawn a unit or building with an incorrect name. For example, if the game is trying to spawn PHC_Smarty_System&amp;quot; it will find this building name doesn&#039;t exist and result in a crash, due to the internal reference name actually being PHC_Smarties. It&#039;s vital you get the correct internal reference names, and not all of them match their in-game display&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9590</id>
		<title>Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Triggers&amp;diff=9590"/>
		<updated>2018-02-22T10:44:06Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Conditional Triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding]]&lt;br /&gt;
&#039;&#039;&#039;Triggers&#039;&#039;&#039; are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
== Active vs Inactive ==&lt;br /&gt;
&lt;br /&gt;
Triggers are &amp;quot;active&amp;quot; by default, meaning they will fire whenever their condition is met. They can be set to Inactive manually in the script.&lt;br /&gt;
&lt;br /&gt;
Triggers set themselves to Inactive when they fire. This means that if you want something to be repeatable, you need to reactivate it somewhere in the script.&lt;br /&gt;
&lt;br /&gt;
== Repeating Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;ActivateTrigger=&amp;quot;triggername&amp;quot;/&amp;gt; to tell a trigger to activate itself will make it repeatable (if you want something to happen every time the player builds a Dreadnought, for example, or waves of enemies to spawn and attack every 15 seconds).&lt;br /&gt;
&lt;br /&gt;
== Conditional Triggers ==&lt;br /&gt;
&lt;br /&gt;
Using the OtherTrigger and NotOtherTrigger arguments is a way to gate your scenario&#039;s logic. For purposes of those arguments, a trigger &#039;counts&#039; &#039;&#039;&#039;if it has been activated at least once&#039;&#039;&#039; during the game. However, you can&#039;t stack multiple Conditional Triggers.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to &amp;quot;un-activate&amp;quot; a trigger, as far as OtherTrigger and NotOtherTrigger are concerned.&lt;br /&gt;
&lt;br /&gt;
== Common Trigger Arguments ==&lt;br /&gt;
&lt;br /&gt;
All triggers share some attributes in common:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the trigger. Required. &lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - What type of trigger it is. See below. Required. &lt;br /&gt;
*&#039;&#039;&#039;Inactive&#039;&#039;&#039; - If this trigger is inactive, to activate use the ActivateTrigger option from another Trigger. &lt;br /&gt;
*&#039;&#039;&#039;OtherTrigger&#039;&#039;&#039; - Name of another trigger that must have fired before this one will activate. Use this to set multiple conditions on a trigger occurring. &lt;br /&gt;
*&#039;&#039;&#039;NotOtherTrigger&#039;&#039;&#039; - Inverse of OtherTrigger. If the other trigger has fired this trigger won’t fire. Us this to create branching options in your scenario. &lt;br /&gt;
&lt;br /&gt;
== Trigger Types ==&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
=== [[Area_Trigger|Area]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when the human player moves a unit into the area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Center&#039;&#039;&#039; - Map coordinates of the center of the area. Required. &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Size of the area. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - Template name of the unit that can trigger this. If you want it to fire if any unit enters the area, do not specify a Template argument. &lt;br /&gt;
&lt;br /&gt;
=== [[Build_Trigger|Build]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a human player builds structures or units.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The template of the building that will fire this trigger &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - Set to &amp;quot;1&amp;quot; if the target is a building &lt;br /&gt;
*&#039;&#039;&#039;Count&#039;&#039;&#039; - How many of the target template must be built to fire the trigger (default 1) &lt;br /&gt;
&lt;br /&gt;
=== [[Destruction_Trigger|Destruction]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when something specific dies.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
&lt;br /&gt;
=== [[Difficulty_Trigger|Difficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Fires at the beginning of a scenario if the given difficulty was chosen&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The given difficulty (0 for Much Easier, up to 4 for Much Harder) &lt;br /&gt;
&lt;br /&gt;
=== [[NamedCreate_Trigger|NamedCreate]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a specific unit or building is spawned via a script.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - Name of the script-spawned unit or building. &lt;br /&gt;
*&#039;&#039;&#039;IsBuilding&#039;&#039;&#039; - If this is a building (if not it refers to a unit). &lt;br /&gt;
&lt;br /&gt;
=== [[Research_Trigger|Research]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a player researches a Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player doing the research &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the tech &lt;br /&gt;
&lt;br /&gt;
=== [[Timer_Trigger|Timer]] ===&lt;br /&gt;
&lt;br /&gt;
Fires after a delay.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Time -&#039;&#039;&#039; Time in seconds after this gets triggered that it takes place. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Trigger|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Fires if a variable meets given criteria&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Var&#039;&#039;&#039; - The name of the variable to check &lt;br /&gt;
*&#039;&#039;&#039;Operator&#039;&#039;&#039; - What logical operator to use when evaluating the variable (equal to, less than, etc) &#039;&#039;&#039;[ == | &amp;gt;= | &amp;lt;= | &amp;gt; | &amp;lt; |&amp;amp;nbsp;!= ]&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The (integer) value to compare the variable against &lt;br /&gt;
*&#039;&#039;Example: &amp;lt;Trigger Name=&amp;quot;tWeasleyDead&amp;quot; Type=&amp;quot;Var&amp;quot; Var=&amp;quot;vWeasleyDead&amp;quot; Operator=&amp;quot;==&amp;quot; Value=&amp;quot;1&amp;quot; &amp;gt; - this fires when the &amp;quot;vWeasleyDead&amp;quot; variable is equal to 1&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== [[ZoneCapture_Trigger|ZoneCapture]] ===&lt;br /&gt;
&lt;br /&gt;
Fires when a region is captured.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Owner&#039;&#039;&#039; - Player who must capture this region to fire the trigger. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Map coordinates of the generator/Nexus.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9589</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9589"/>
		<updated>2018-02-22T10:42:30Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Player Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined (top of the list), 1 is the next, and so on. Player number has nothing to do with player color.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9588</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9588"/>
		<updated>2018-02-22T10:38:34Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Fixing Issues ==&lt;br /&gt;
&lt;br /&gt;
Many things in the Scenario code can cause issues that result a crash or prevent it from working. Here&#039;s a list of some common issues that you may encounter and how to fix them.&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list.&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Dialog&amp;diff=9587</id>
		<title>Dialog</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Dialog&amp;diff=9587"/>
		<updated>2018-02-22T10:36:04Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Dialog command is used in scripting to display text to create dialog between characters. Here&#039;s an example of what dialog choice should look like.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Icon&#039;&#039;&#039; - This is optional, and if left out will not display any icon. The Icon name refers to a hard coded image, which match the in-game display name such as &amp;quot;Samuel&amp;quot;. Currently, Additional portraits can not be added as calling them by game code, but existing portraits can be edited and replaced. The Portrait name refers to a portion of the Assets\UI\Art\New HUD\CharacterPortraits85x113.dds file.  &lt;br /&gt;
&lt;br /&gt;
Portraits are: Mac&lt;br /&gt;
Haalee&lt;br /&gt;
Vexen&lt;br /&gt;
Valen&lt;br /&gt;
Artix&lt;br /&gt;
Ventrix&lt;br /&gt;
Athena&lt;br /&gt;
Narrator&lt;br /&gt;
Agememnon&lt;br /&gt;
Agethon&lt;br /&gt;
Nihilon&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Text&#039;&#039;&#039; - Refers to a line of text in one of the many .csv files in the Assets\UIText directory. The amount of characters determines duration of the dialog on screen, unless an audio file is played.&lt;br /&gt;
*&#039;&#039;&#039;Audio&#039;&#039;&#039; - This is optional, plays an audio file intended for voice over to match a line of text. The length of the audio file determines the duration the dialog plays. &lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it looks like.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Trigger Name=&amp;quot;tIntro_Pan&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;0&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;Dialog&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Samuel&amp;quot; Text=&amp;quot;Atwater_Intro1&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Samuel_1.wav&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Nihilon&amp;quot; Text=&amp;quot;Atwater_Intro2&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Nihilon_1.wav&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Nihilon&amp;quot; Text=&amp;quot;Atwater_Intro3&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Nihilon_2.wav&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Dialog&amp;gt;&lt;br /&gt;
  &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Dialog&amp;diff=9586</id>
		<title>Dialog</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Dialog&amp;diff=9586"/>
		<updated>2018-02-22T10:35:33Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Dialog command is used in scripting to display text to create dialog between characters. Here&#039;s an example of what dialog choice should look like.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Icon&#039;&#039;&#039; - This is optional, and if left out will not display any icon. The Icon name refers to a hard coded image, which match the in-game display name such as &amp;quot;Samuel&amp;quot;. Currently, Additional portraits can not be added as calling them by game code, but existing portraits can be edited and replaced. The Portrait name refers to a portion of the Assets\UI\Art\New HUD\CharacterPortraits85x113.dds file.  &lt;br /&gt;
&lt;br /&gt;
Portraits are: Mac&lt;br /&gt;
Haalee&lt;br /&gt;
Vexen&lt;br /&gt;
Valen&lt;br /&gt;
Artix&lt;br /&gt;
Ventrix&lt;br /&gt;
Athena&lt;br /&gt;
Adrasteia&lt;br /&gt;
Agememnon&lt;br /&gt;
Agethon&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Text&#039;&#039;&#039; - Refers to a line of text in one of the many .csv files in the Assets\UIText directory. The amount of characters determines duration of the dialog on screen, unless an audio file is played.&lt;br /&gt;
*&#039;&#039;&#039;Audio&#039;&#039;&#039; - This is optional, plays an audio file intended for voice over to match a line of text. The length of the audio file determines the duration the dialog plays. &lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it looks like.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Trigger Name=&amp;quot;tIntro_Pan&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;0&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;Dialog&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Samuel&amp;quot; Text=&amp;quot;Atwater_Intro1&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Samuel_1.wav&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Nihilon&amp;quot; Text=&amp;quot;Atwater_Intro2&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Nihilon_1.wav&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Nihilon&amp;quot; Text=&amp;quot;Atwater_Intro3&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Nihilon_2.wav&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Dialog&amp;gt;&lt;br /&gt;
  &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Dialog&amp;diff=9585</id>
		<title>Dialog</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Dialog&amp;diff=9585"/>
		<updated>2018-02-22T10:35:20Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Dialog command is used in scripting to display text to create dialog between characters. Here&#039;s an example of what dialog choice should look like.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Icon&#039;&#039;&#039; - This is optional, and if left out will not display any icon. The Icon name refers to a hard coded image, which match the in-game display name such as &amp;quot;Samuel&amp;quot;. Currently, Additional portraits can not be added as calling them by game code, but existing portraits can be edited and replaced. The Portrait name refers to a portion of the Assets\UI\Art\New HUD\CharacterPortraits85x113.dds file.  &lt;br /&gt;
&lt;br /&gt;
Mac&lt;br /&gt;
Haalee&lt;br /&gt;
Vexen&lt;br /&gt;
Valen&lt;br /&gt;
Artix&lt;br /&gt;
Ventrix&lt;br /&gt;
Athena&lt;br /&gt;
Adrasteia&lt;br /&gt;
Agememnon&lt;br /&gt;
Agethon&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Text&#039;&#039;&#039; - Refers to a line of text in one of the many .csv files in the Assets\UIText directory. The amount of characters determines duration of the dialog on screen, unless an audio file is played.&lt;br /&gt;
*&#039;&#039;&#039;Audio&#039;&#039;&#039; - This is optional, plays an audio file intended for voice over to match a line of text. The length of the audio file determines the duration the dialog plays. &lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it looks like.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Trigger Name=&amp;quot;tIntro_Pan&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;0&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;Dialog&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Samuel&amp;quot; Text=&amp;quot;Atwater_Intro1&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Samuel_1.wav&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Nihilon&amp;quot; Text=&amp;quot;Atwater_Intro2&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Nihilon_1.wav&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Entry Icon=&amp;quot;Nihilon&amp;quot; Text=&amp;quot;Atwater_Intro3&amp;quot; Audio=&amp;quot;Audio/Campaign/Genesis3_Atwater/Genesis3_Atwater_Nihilon_2.wav&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Dialog&amp;gt;&lt;br /&gt;
  &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9584</id>
		<title>Scenario Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Scenario_Editor&amp;diff=9584"/>
		<updated>2018-02-22T10:34:13Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting – Creating Scenarios ==&lt;br /&gt;
&lt;br /&gt;
[[Scripting|Scripting]] allows you a huge amount of control over what exactly happens on the map you are creating. You can restrict what buildings and [[Units|units]] the players can use, set up [[Triggers|Triggers]] to lock or unlock them, spawn units or buildings for the players or their enemies. You can send units to attack specific targets and send dialog popups to the player. Everything you need to make your own custom Scenarios.&lt;br /&gt;
&lt;br /&gt;
All of this is stored in XML, not code, so you don’t need any special programming tools or experience to use it. Though, it may be confusing at first and take a while to wrap your head around it. The best advice for seeing what is possible is to look through the \Assets\Campaign\ and \Scenario\ directories and seeing how the existing missions are made. Some examples are also included below.&lt;br /&gt;
&lt;br /&gt;
There are three main elements in Ashes scripting: [[Missions_(scripting)|missions]], [[Player_(scripting)|players]] and [[Triggers|triggers]]. Missions are the definition or the scenario. Players defines the players that are going to be used in the scenario. Triggers are where all the magic happens. Triggers have a lot of elements and options.&lt;br /&gt;
&lt;br /&gt;
Note that all triggers and arguments are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Mission Definition ===&lt;br /&gt;
&lt;br /&gt;
First, you set up all the menu-related items (what icons/art to use in the Campaign screen, etc) and global settings like enabling/disabling creeps and hiding terrain. To see the full list of items that can be conifgured, refer to the  [[Missions_(scripting)|&amp;lt;Mission&amp;gt; page.]]&lt;br /&gt;
&lt;br /&gt;
=== Player Definition ===&lt;br /&gt;
&lt;br /&gt;
To do much of anything, you&#039;ll need to define [[Player_(scripting)|players]] next. This is done with individual &amp;lt;Player&amp;gt; tags that enable or disable their AI, sets faction, team, and color, etc.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll likely refer to these players later in the script by number, where 0 is the first player defined, 1 is the next, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Triggers ===&lt;br /&gt;
&lt;br /&gt;
[[Triggers|Triggers]] are what control anything you want to happen while the scenario is being played, from spawning starting base to calling waves of attacking enemies or giving players objectives. There are several types of triggers which activate off of different events.&lt;br /&gt;
&lt;br /&gt;
=== Trigger Types ===&lt;br /&gt;
&lt;br /&gt;
These are the types of triggers you can use in a script, and any specific arguments they support.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Area_Trigger|Area]]&#039;&#039;&#039; - Fires when the human player moves a unit into the area. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Build_Trigger|Build]]&#039;&#039;&#039; - Fires when a human player builds structures or units. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Destruction_Trigger|Destruction]]&#039;&#039;&#039; - Fires when something specific dies. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Difficulty_Trigger|Difficulty]]&#039;&#039;&#039; - Fires at the beginning of a scenario if the given difficulty was chosen &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[NamedCreate_Trigger|NamedCreate]]&#039;&#039;&#039; - Fires when a specific unit or building is spawned via a script. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Research_Trigger|Research]]&#039;&#039;&#039; - Fires when a player researches a Quantum Upgrade &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Timer_Trigger|Timer]]&#039;&#039;&#039; - Fires after a delay. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Var_Trigger|Var]]&#039;&#039;&#039; - Fires if a variable meets given criteria &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ZoneCapture_Trigger|ZoneCapture]]&#039;&#039;&#039; - Fires when a region is captured, is also used for destroying players since their nexus turns into a Turinium Generator. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
These are the [[Script_Commands|commands]] you can put within a trigger to create gameplay effects.&lt;br /&gt;
&lt;br /&gt;
For detailed information about how to use this, read the [[Script_Commands|main Commands entry]].&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[ActivateTrigger|ActivateTrigger]]&#039;&#039;&#039; - Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger). &lt;br /&gt;
*&#039;&#039;&#039;[[AreaIndicator|AreaIndicator]]&#039;&#039;&#039; - This places a visible indicator on the map to help the player know where they should go to. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackAttackMove|AttackAttackMove]]&#039;&#039;&#039; - Order an army to move to a specific area, engaging enemies along the way. &lt;br /&gt;
*&#039;&#039;&#039;[[AttackUnit|AttackUnit]]&#039;&#039;&#039; - Order an army to attack a specific script-spawned unit &lt;br /&gt;
*&#039;&#039;&#039;[[Camera|Camera]]&#039;&#039;&#039; - Move the player&#039;s view to a specific area. &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearestNext|CaptureNearestNext]]&#039;&#039;&#039; - Order an army to capture the nearest neutral or enemy-controlled region &lt;br /&gt;
*&#039;&#039;&#039;[[CaptureNearest|CaptureNearest]]&#039;&#039;&#039; - Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there) &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIDifficulty|ChangeAIDifficulty]]&#039;&#039;&#039; - Change an AI player&#039;s difficulty setting &lt;br /&gt;
*&#039;&#039;&#039;[[ChangeAIPersonality|ChangeAIPersonality]]&#039;&#039;&#039; - Change an AI player&#039;s personality &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyBuilding|DestroyBuilding]]&#039;&#039;&#039; - Destroys a specific script-spawned building. &lt;br /&gt;
*&#039;&#039;&#039;[[DestroyUnit|DestroyUnit]]&#039;&#039;&#039; - Destroys a specific script-spawned unit. &lt;br /&gt;
*&#039;&#039;&#039;[[Dialog|Dialog]]&#039;&#039;&#039; - This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[Entry|Entry]]&#039;&#039;&#039; - The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags. &lt;br /&gt;
*&#039;&#039;&#039;[[EndMission|EndMission]]&#039;&#039;&#039; - Use to force a win or loss of the scenario. &lt;br /&gt;
*&#039;&#039;&#039;[[GrantStuff|GrantStuff]]&#039;&#039;&#039; - Give a player free resources &lt;br /&gt;
*&#039;&#039;&#039;[[GrantTech|GrantTech]]&#039;&#039;&#039; - Give a player a free Quantum Upgrade &lt;br /&gt;
*&#039;&#039;&#039;[[HidePanel|HidePanel]]&#039;&#039;&#039; - Hide UI panels &lt;br /&gt;
*&#039;&#039;&#039;[[LetterBox|LetterBox]]&#039;&#039;&#039; - disable commands and go to a cinematic, letterbox view &lt;br /&gt;
*&#039;&#039;&#039;[[MoveUnit|MoveUnit]]&#039;&#039;&#039; - Move an army to a location without stopping to fight &lt;br /&gt;
*&#039;&#039;&#039;[[Objective|Objective]]&#039;&#039;&#039; - Use this to set objective notifications for the player (so they know what to do). &lt;br /&gt;
*&#039;&#039;&#039;[[Restrict|Restrict]]&#039;&#039;&#039; - To block the player from being able to access objects in the game. &lt;br /&gt;
*&#039;&#039;&#039;[[Reveal|Reveal]]&#039;&#039;&#039; - Reveal the fog of war over a location &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnBuilding|SpawnBuilding]]&#039;&#039;&#039; - Places a building on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[SpawnUnit|SpawnUnit]]&#039;&#039;&#039; - Places a unit on the map. &lt;br /&gt;
*&#039;&#039;&#039;[[Var_Command|Var]]&#039;&#039;&#039; - Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Position Coordinates ==&lt;br /&gt;
&lt;br /&gt;
To view map coordinates, ensure you have opted into to a modding build under steam betas which allows you to open the developer tools. Open up the the map in a skirmish and press the ` or HOME key, then select DebugPlayerPanel and Enable Show Mouse Position.&lt;br /&gt;
&lt;br /&gt;
== Trigger Examples ==&lt;br /&gt;
&lt;br /&gt;
A single trigger can do any combination of the above options. It can popup some text, spawn some units, set an objective give the player some resources and unlock some new building options. It is up to you how you want to combine and use them. Let’s take a look at some examples.&lt;br /&gt;
&lt;br /&gt;
=== Send an army to attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 29.png|frame|center|An attack trigger]]&amp;lt;br /&amp;gt; The above trigger is inactive, meaning it needs another trigger to call it before it will activate. Once it does it will spawn 16 units into an army and send them to attack the defined map position. This is a relatively simple trigger, but a common one. With this alone you can create scenarios that spawn waves to attack the player, grant reinforcements to the player or create surprise ambushes.&lt;br /&gt;
&lt;br /&gt;
=== Reward the player for capturing an area ===&lt;br /&gt;
&lt;br /&gt;
[[File:ModGuide 30.png|frame|center|A region capture trigger]]&amp;lt;br /&amp;gt; The above trigger occurs when the player captures the region at the specified position. Notice that the trigger starts inactive, so it would need to be enabled by an earlier trigger before it could occur.&lt;br /&gt;
&lt;br /&gt;
This trigger does the following:&lt;br /&gt;
&lt;br /&gt;
*Checks the Cap_C_Obj objective in the player’s objective list. &lt;br /&gt;
*It disables the Cap_B_Ind Area Indicator by setting it’s duration to 0. &lt;br /&gt;
*It pops up some dialog for the player. &lt;br /&gt;
*It enables the player’s ability to build Metal Extractors. &lt;br /&gt;
*It spawns a free Engineer for the player. &lt;br /&gt;
*It moves the camera to look at the captured region. &lt;br /&gt;
*It adds a new objective for the player (Mex_Built_Obj). &lt;br /&gt;
*It gives the player 500 Metal. &lt;br /&gt;
*It makes the Cap_C_Trigger trigger active. &lt;br /&gt;
&lt;br /&gt;
This is a great example of the kind of combinations that can be done with the trigger system. This is a reward to the player for capturing the region. But it could as easily have triggered an escalation for the enemy forces.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Script_Commands&amp;diff=9583</id>
		<title>Script Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Script_Commands&amp;diff=9583"/>
		<updated>2018-02-22T10:33:40Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: /* GrantTech */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Commands are used within [[Triggers|triggers]] to create gameplay effects, from revealing locations to spawning attack waves or even changing an AI&#039;s difficulty mid-game.&lt;br /&gt;
&lt;br /&gt;
== List of Commands ==&lt;br /&gt;
&lt;br /&gt;
=== [[ActivateTrigger|ActivateTrigger]] ===&lt;br /&gt;
&lt;br /&gt;
Activate another trigger (also can be used to activate the trigger it is called from, making a repeating trigger).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - This is the name of another trigger that will be set from Inactive to Active. &lt;br /&gt;
&lt;br /&gt;
=== [[AreaIndicator|AreaIndicator]] ===&lt;br /&gt;
&lt;br /&gt;
This places a visible indicator on the map to help the player know where they should go to.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the area. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - The center of the area. &lt;br /&gt;
*&#039;&#039;&#039;Color&#039;&#039;&#039; - The color the area indicator is. [ Green | Blue | Red ] &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - How big the area indicator will be. &lt;br /&gt;
*&#039;&#039;&#039;Duration&#039;&#039;&#039; - How long the area indicator should last, -1 means that it lasts forever. &lt;br /&gt;
&lt;br /&gt;
=== [[AttackAttackMove|AttackAttackMove]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to move to a specific area, engaging enemies along the way.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the army that will be given the order. &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - Whether to repeat the order. Use with multiple AttackAttackMove commands to create a patrol path. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the army is ordered to move to. &lt;br /&gt;
&lt;br /&gt;
=== [[AttackUnit|AttackUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to attack a specific script-spawned unit&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to do the attacking &lt;br /&gt;
*&#039;&#039;&#039;Target&#039;&#039;&#039; - The name of the unit to be attacked &lt;br /&gt;
&lt;br /&gt;
=== [[Camera|Camera]] ===&lt;br /&gt;
&lt;br /&gt;
Move the player&#039;s view to a specific area.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the camera will be looking. &lt;br /&gt;
*&#039;&#039;&#039;Snap&#039;&#039;&#039; - Set to 1 to move the camera instantly, instead of panning &lt;br /&gt;
*&#039;&#039;&#039;Speed&#039;&#039;&#039; - Scalar for how fast the camera will move, compared to clicking on the minimap. 0.5 for half speed, 2 for double, etc. &lt;br /&gt;
*&#039;&#039;&#039;Unit&#039;&#039;&#039; - Follow a specific script-spawned unit. Do not use Position if you use this. &lt;br /&gt;
*&#039;&#039;&#039;Building&#039;&#039;&#039; - Follow a specific script-spawned building. Do not use Position if you use this. &lt;br /&gt;
*&#039;&#039;&#039;Save&#039;&#039;&#039; - Save the current camera settings. Useful if you want to show the player something and then move the camera back to whatever they were looking at. &lt;br /&gt;
*&#039;&#039;&#039;Load&#039;&#039;&#039; - Load the last saved camera settings. Use with Save. May cause a crash if you haven&#039;t previously saved a camera position. &lt;br /&gt;
*&#039;&#039;&#039;RTP&#039;&#039;&#039; - Distance, rotation and pitch of the camera. &lt;br /&gt;
**The first number is distance. 1000 is a fairly tight shot, 2500 is a fairly typical gameplay zoom &lt;br /&gt;
**Second number is rotation. 0 points the camera north, 90 east, 180 south, 270 west. &lt;br /&gt;
**Third number is pitch. 40-50 are typical gameplay angles. 90 would be straight down. Note that anything lower than 40 can cause the engine to load a &#039;&#039;&#039;lot&#039;&#039;&#039; more terrain and models than it&#039;s designed to, so use with caution. &lt;br /&gt;
&lt;br /&gt;
=== [[CaptureNearest|CaptureNearest]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to clear its order queue and capture the nearest neutral or enemy-controlled region (note: ordered unit will stop moving if region is captured before it gets there)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to do the capturing &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - Whether to repeat the order (indefinitely) &lt;br /&gt;
&lt;br /&gt;
=== [[CaptureNearestNext|CaptureNearestNext]] ===&lt;br /&gt;
&lt;br /&gt;
Order an army to capture the nearest neutral or enemy-controlled region&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to do the capturing &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - Whether to repeat the order (indefinitely) &lt;br /&gt;
&lt;br /&gt;
=== [[ChangeAIDifficulty|ChangeAIDifficulty]] ===&lt;br /&gt;
&lt;br /&gt;
Change an AI player&#039;s difficulty setting&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to change &lt;br /&gt;
*&#039;&#039;&#039;Difficulty&#039;&#039;&#039; - The name of the difficulty to set it to &lt;br /&gt;
&lt;br /&gt;
=== [[ChangeAIPersonality|ChangeAIPersonality]] ===&lt;br /&gt;
&lt;br /&gt;
Change an AI player&#039;s personality&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to change &lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the personality to set it to (defined in \Assets\GameCore\DefaultPlayerAI.xml) &lt;br /&gt;
&lt;br /&gt;
=== [[DestroyBuilding|DestroyBuilding]] ===&lt;br /&gt;
&lt;br /&gt;
Destroys a specific script-spawned building.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the building to be destroyed. &lt;br /&gt;
&lt;br /&gt;
=== [[DestroyUnit|DestroyUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Destroys a specific script-spawned unit.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the unit to be destroyed. &lt;br /&gt;
&lt;br /&gt;
=== [[Dialog|Dialog]] ===&lt;br /&gt;
&lt;br /&gt;
This creates a popup that can convey information or story to the player. Use with &amp;lt;Entry&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
=== [[Entry|Entry]] ===&lt;br /&gt;
&lt;br /&gt;
The actual text that will be displayed. Use only within &amp;lt;Dialog&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Text&#039;&#039;&#039; - The actual text that is displayed. Corresponds to an entry in a .csv file in \Assets\UIText\ &lt;br /&gt;
*&#039;&#039;&#039;Icon&#039;&#039;&#039; - The icon used with the text popup. Hard-coded to correspond to Ashes characters, and changes the text color to match. &lt;br /&gt;
**Mac &lt;br /&gt;
**Haalee &lt;br /&gt;
**Vexen &lt;br /&gt;
**Valen &lt;br /&gt;
**Artix &lt;br /&gt;
**Ventrix &lt;br /&gt;
**Athena &lt;br /&gt;
**Adrasteia &lt;br /&gt;
**Agememnon &lt;br /&gt;
**Agethon &lt;br /&gt;
&lt;br /&gt;
=== [[EndMission|EndMission]] ===&lt;br /&gt;
&lt;br /&gt;
Use to force a win or loss of the scenario.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Victory&#039;&#039;&#039; - Set to 0 to lose the scenario or 1 to win. &lt;br /&gt;
*&#039;&#039;&#039;String&#039;&#039;&#039; - The text that is displayed. &lt;br /&gt;
&lt;br /&gt;
=== [[GrantStuff|GrantStuff]] ===&lt;br /&gt;
&lt;br /&gt;
Give a player free resources.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to be hooked up &lt;br /&gt;
*&#039;&#039;&#039;Metal&#039;&#039;&#039; - The amount of metal being granted. &lt;br /&gt;
*&#039;&#039;&#039;Quanta&#039;&#039;&#039; - The amount of quanta being granted. &lt;br /&gt;
*&#039;&#039;&#039;Radioactives&#039;&#039;&#039; - The amount of radioactives being granted. &lt;br /&gt;
*&#039;&#039;&#039;Turinium&#039;&#039;&#039; - The amount of victory points being granted. &lt;br /&gt;
&lt;br /&gt;
=== [[GrantTech|GrantTech]] ===&lt;br /&gt;
&lt;br /&gt;
Give a player a free Quantum Upgrade&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The index of the player to be hooked up &lt;br /&gt;
*&#039;&#039;&#039;Tech&#039;&#039;&#039; - The upgrade to grant [ HPs | Weapons | Radar | BuildingHPs | MetalStorage | RadsStorage | NexusHPs ]&lt;br /&gt;
&lt;br /&gt;
=== [[HidePanel|HidePanel]] ===&lt;br /&gt;
&lt;br /&gt;
Hide UI panels.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;HidePlayer&#039;&#039;&#039; - Hide the Player panel &lt;br /&gt;
*&#039;&#039;&#039;HideRank&#039;&#039;&#039; - Hide the Rank panel &lt;br /&gt;
*&#039;&#039;&#039;HideResource&#039;&#039;&#039; - Hide the Resource panel &lt;br /&gt;
&lt;br /&gt;
=== [[LetterBox|LetterBox]] ===&lt;br /&gt;
&lt;br /&gt;
Disable commands and go to a cinematic, letterbox view.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Enable&#039;&#039;&#039; - 1 to turn letterbox mode on, 0 to turn it off &lt;br /&gt;
*&#039;&#039;&#039;Snap&#039;&#039;&#039; - 1 to immediately go to/from letterbox mode instead of fading in/out &lt;br /&gt;
&lt;br /&gt;
=== [[MoveUnit|MoveUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Move an army to a location without stopping to fight&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the unit to be moved &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - x/y coordinates to move to &lt;br /&gt;
*&#039;&#039;&#039;Repeat&#039;&#039;&#039; - 1 to repeat this command indefinitely. Use with multiple MoveUnit commands to create a patrol path. &lt;br /&gt;
*&#039;&#039;&#039;Stop&#039;&#039;&#039; - 1 to stop the unit &lt;br /&gt;
&lt;br /&gt;
=== [[Objective|Objective]] ===&lt;br /&gt;
&lt;br /&gt;
Use this to set objective notifications for the player (so they know what to do).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of the objective, use this name when checking or hiding it. &lt;br /&gt;
*&#039;&#039;&#039;Hide&#039;&#039;&#039; - If this objective should be hidden or not, usually this means the objective is complete. &lt;br /&gt;
*&#039;&#039;&#039;String&#039;&#039;&#039; - What the objective displays on the screen. &lt;br /&gt;
*&#039;&#039;&#039;SetCheck&#039;&#039;&#039; - If the objective checkbox is checked or not. &lt;br /&gt;
&lt;br /&gt;
=== [[Restrict|Restrict]] ===&lt;br /&gt;
&lt;br /&gt;
To block the player from being able to access objects in the game.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Type&#039;&#039;&#039; - Unit, Building, Research or Orbital. Whatever type of object that is being restricted. &lt;br /&gt;
*&#039;&#039;&#039;ID&#039;&#039;&#039; - The name of the object being restricted. &lt;br /&gt;
*&#039;&#039;&#039;Enable&#039;&#039;&#039; - Set this to 1 to enable the object. You can use this to restrict something early in the scenario and then enable it later on (for example: when the player accomplishes an objective or after a set amount of time). &lt;br /&gt;
&lt;br /&gt;
=== [[Reveal|Reveal]] ===&lt;br /&gt;
&lt;br /&gt;
Reveal the fog of war over a location&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name of this reveal (so you can modify it with a later command) &lt;br /&gt;
*&#039;&#039;&#039;Enable&#039;&#039;&#039; - 1 to enable, 0 to disable &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - x/y coordinates of the center of the revealed area &lt;br /&gt;
*&#039;&#039;&#039;Size&#039;&#039;&#039; - Radius of the area to be revealed &lt;br /&gt;
*&#039;&#039;&#039;RadarSize&#039;&#039;&#039; - Use to add a radar component to the reveal. Can be used with Size=&amp;quot;0&amp;quot; to create a radar-only reveal &lt;br /&gt;
&lt;br /&gt;
=== [[SpawnBuilding|SpawnBuilding]] ===&lt;br /&gt;
&lt;br /&gt;
Places a building on the map.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name you assign to the building. &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - The name of the building type being created. &lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player who will own the building. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the building will be placed. &lt;br /&gt;
*&#039;&#039;&#039;NoDeath&#039;&#039;&#039; - Set this to &amp;quot;1&amp;quot; to make the unit immortal (you can still kill it with a scripted DestroyBuilding command) &lt;br /&gt;
&lt;br /&gt;
=== [[SpawnUnit|SpawnUnit]] ===&lt;br /&gt;
&lt;br /&gt;
Places a unit on the map.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - The name you assign to the unit. &lt;br /&gt;
*&#039;&#039;&#039;Parent&#039;&#039;&#039; - The army the unit will belong to (used to make it easier to issue moves). &lt;br /&gt;
*&#039;&#039;&#039;Template&#039;&#039;&#039; - The type of unit being created. &lt;br /&gt;
*&#039;&#039;&#039;Player&#039;&#039;&#039; - The player that will own the unit. &lt;br /&gt;
*&#039;&#039;&#039;Position&#039;&#039;&#039; - Where the unit will be created. &lt;br /&gt;
&lt;br /&gt;
=== [[Var_Command|Var]] ===&lt;br /&gt;
&lt;br /&gt;
Set or modify a variable. Tip: Set any variable you want to use to 0 in the initial setup trigger to avoid unpredictable results. &#039;&#039;All values must be integers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Name&#039;&#039;&#039; - Name of the variable &lt;br /&gt;
*&#039;&#039;&#039;Value&#039;&#039;&#039; - The value to be used in the operation &lt;br /&gt;
*&#039;&#039;&#039;Min&#039;&#039;&#039; - Minimum value for random functions &lt;br /&gt;
*&#039;&#039;&#039;Max&#039;&#039;&#039; - Maximum value for random functions &lt;br /&gt;
*&#039;&#039;&#039;Operation&#039;&#039;&#039; - Operation to be performed &lt;br /&gt;
**&amp;quot;=&amp;quot; or &amp;quot;Set&amp;quot; - set to the value &lt;br /&gt;
**&amp;quot;+&amp;quot; or &amp;quot;Add&amp;quot; - add value &lt;br /&gt;
**&amp;quot;-&amp;quot; or &amp;quot;Sub&amp;quot; - subtract value &lt;br /&gt;
**&amp;quot;Rand&amp;quot; or &amp;quot;SetRand&amp;quot; - set to a random value between Min and Max &lt;br /&gt;
**&amp;quot;AddRand&amp;quot; - add a random value between Min and Max &lt;br /&gt;
**&amp;quot;SubRand&amp;quot; - subtract a random value between Min and Max &lt;br /&gt;
&lt;br /&gt;
[[Category:Modding]] [[Category:Commands]]&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9582</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9582"/>
		<updated>2018-02-22T10:32:40Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
 &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9581</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9581"/>
		<updated>2018-02-22T10:32:17Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
         &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
     &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9580</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9580"/>
		<updated>2018-02-22T10:31:00Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9579</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9579"/>
		<updated>2018-02-22T10:30:20Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
 &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9578</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9578"/>
		<updated>2018-02-22T10:30:07Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9577</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9577"/>
		<updated>2018-02-22T10:29:58Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
  &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9576</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9576"/>
		<updated>2018-02-22T10:29:22Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Objective command is used to display and update the in-game objectives panel in the top right corner. &lt;br /&gt;
&lt;br /&gt;
Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of what it&#039;d look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9575</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9575"/>
		<updated>2018-02-22T10:27:12Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9574</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9574"/>
		<updated>2018-02-22T10:27:03Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
   &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9573</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9573"/>
		<updated>2018-02-22T10:26:54Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: true=box is checked, false=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;Trigger Name=&amp;quot;Dialogue_02d&amp;quot; Type=&amp;quot;Timer&amp;quot; Timer=&amp;quot;1&amp;quot; Inactive=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;Objective Name=&amp;quot;Mex_Built_Obj&amp;quot;  String=&amp;quot;NewTutorial_Obj_Mex&amp;quot; SetCheck=&amp;quot;false&amp;quot; /&amp;gt;	&lt;br /&gt;
    &amp;lt;/Trigger&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9572</id>
		<title>Objective</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=Objective&amp;diff=9572"/>
		<updated>2018-02-22T10:21:39Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: Created page with &amp;quot;Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: 1=box is checked, 0=box is not  &amp;lt;Obj...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Objective Name: Arbitrary name given to the objective String: String representing an objective name in the mission text CSV file SetCheck: 1=box is checked, 0=box is not &lt;br /&gt;
&amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; String=&amp;quot;Mission5_Objective1A&amp;quot; /&amp;gt; &amp;lt;Objective Name=&amp;quot;ObjEx&amp;quot; SetCheck=&amp;quot;1&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
	<entry>
		<id>https://wiki.ashesofthesingularity.com/index.php?title=LetterBox&amp;diff=9571</id>
		<title>LetterBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.ashesofthesingularity.com/index.php?title=LetterBox&amp;diff=9571"/>
		<updated>2018-02-22T10:20:50Z</updated>

		<summary type="html">&lt;p&gt;AlphonsoHornibro: Created page with &amp;quot;LetterBox disable commands and goes to a cinematic, letterbox view used to introduce missions. Here&amp;#039;s what it looks like.   &amp;lt;LetterBox Enable=&amp;quot;1&amp;quot; Snap=&amp;quot;1&amp;quot; /&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LetterBox disable commands and goes to a cinematic, letterbox view used to introduce missions. Here&#039;s what it looks like.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LetterBox Enable=&amp;quot;1&amp;quot; Snap=&amp;quot;1&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlphonsoHornibro</name></author>
	</entry>
</feed>