<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A+Guy</id>
	<title>The Battle for Wesnoth Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A+Guy"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/A_Guy"/>
	<updated>2026-04-04T15:36:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=30798</id>
		<title>EventWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=30798"/>
		<updated>2009-06-25T12:42:44Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== The [event] Tag ==&lt;br /&gt;
&lt;br /&gt;
This tag is a subtag of the [scenario], [unit] and [era] tags which is used to describe a set of actions which trigger at a certain point in a scenario. When used in a [scenario] tag (also includes [multiplayer], [tutorial] and [test]), the event only occurs in that scenario. When used in a [unit] type definition, the event will occur in all scenarios in which a unit of that type appears in. When used in an [era], the event will occur in any scenario which is played using that era.&lt;br /&gt;
&lt;br /&gt;
This tag has keys and child tags that control when and if the event actions will be triggered. Most important of these is the '''name''' key. Without it, no error will be raised but the event will never fire. Therefore, from a practical standpoint, it can be considered mandatory. All of the others can be used or not and the event actions will fire either way.&lt;br /&gt;
&lt;br /&gt;
=== The 'name' Key (Mandatory) ===&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 name=&amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is '''not''' like a normal 'name' key. ''It is a basic description of when the event will trigger.'' It also has a very large number of predefined values, one of which must be used for the key to be valid.&lt;br /&gt;
&lt;br /&gt;
'''Lexicon side note:''' ''It is not uncommon to refer to these values as the 'trigger' for an event and, furthermore, to call an event by its 'trigger' name. For example, in an event containing '''name=moveto''', a person might refer to the event as a ''''moveto''' event' and/or refer to the ''''moveto''' trigger' in the event or even talk about the 'event trigger' when referring to the '''moveto''' value of the 'name' key in that event. Some or all of this usage can, in fact, be found throughout this page.''&lt;br /&gt;
&lt;br /&gt;
The '''name''' key can accept a list of comma separated values describing when the event will be triggered.*  These values may be either predefined event types or  custom event names not matching any predefined type.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 name=attacker misses,defender misses&lt;br /&gt;
&lt;br /&gt;
''* Note that unless you use [[#first_time_only|first_time_only=no]], the event will fire only once, '''not''' once for each listed type.''&lt;br /&gt;
&lt;br /&gt;
==== Predefined 'name' Key Values ====&lt;br /&gt;
&lt;br /&gt;
All predefined event types are listed here along with a description of when this value will cause the event to be triggered. Any value ''not'' listed here is a custom event name which can be triggered only by a '''[fire_event]''' tag somewhere else. Spaces in event names can be interchanged with underscores (for example, '''name=new turn''' and '''name=new_turn''' are equivalent).&lt;br /&gt;
&lt;br /&gt;
; preload {{DevFeature}}&lt;br /&gt;
: Triggers before a scenario 'prestarts' and when loading a savegame -- before anything is shown on the screen at all. Can be used to set up the [[LuaWML|Lua]] environment: loading libraries, defining helper functions, etc.&amp;lt;br /&amp;gt;'''Note:''' Unlike prestart and start, the preload event '''must be able to fire more than once!''' This is because it is triggered each time a savegame is loaded in addition to the initial time when it loads before the scenario 'prestart'. This means that it is effectively ''mandatory'' to have the [[#first_time_only|first_time_only=no]] key value in a preload event. &lt;br /&gt;
&lt;br /&gt;
; prestart&lt;br /&gt;
: Triggers before a scenario 'starts' -- before anything is shown on the screen at all. Can be used to set up things like village ownership. For things displayed on-screen such as character dialog, use '''start''' instead.&amp;lt;br /&amp;gt;'''Note:''' ''This value makes the [[#first_time_only|first_time_only]] key irrelevant since, by definition, it can only fire once.''&lt;br /&gt;
&lt;br /&gt;
; start&lt;br /&gt;
: Triggers after the map is shown but before the scenario begins -- before players can 'do' anything.&amp;lt;br /&amp;gt;'''Note:''' ''This value makes the [[#first_time_only|first_time_only]] key irrelevant since, by definition, it can only fire once.''&lt;br /&gt;
&lt;br /&gt;
; new turn&lt;br /&gt;
: Triggers whenever the last player ends their turn. See also [[#first_time_only|first_time_only=no]]. When the last player ends their turn, before any events of this type trigger, the value of the WML variable '''turn_number''' is set to the number of the turn that is beginning.&lt;br /&gt;
&lt;br /&gt;
; side turn&lt;br /&gt;
: Triggers when a side is about to start its turn. Before events of this type trigger, the value of the WML variable '''side_number''' is set to the number of the side of the player about to take their turn. This is before any healing takes place for that side, before calculating income, and before restoring unit movement and status.&lt;br /&gt;
&lt;br /&gt;
; ai turn&lt;br /&gt;
: Triggered just before the AI is invoked for a side. This is called after ''side turn'', and thus the WML variable '''side_number''' still holds the number of this side.&lt;br /&gt;
&lt;br /&gt;
; turn refresh&lt;br /&gt;
: Like '''side turn''', triggers just before a side is taking control but '''after''' healing, calculating income, and restoring unit movement and status.&lt;br /&gt;
&lt;br /&gt;
; turn ''X''&lt;br /&gt;
: For ''X'' equals a number greater than 1, this event triggers at the start of turn ''X''. The value of ''X'' cannot be 1 but, if that effect is needed, use '''name=new turn''' and '''first_time_only=yes''' to achieve the equivalent of what '''turn 1''' would do.&lt;br /&gt;
&lt;br /&gt;
; time over&lt;br /&gt;
: Triggers on turn ''turns''. (''turns'' is specified in [scenario])&lt;br /&gt;
&lt;br /&gt;
; enemies defeated&lt;br /&gt;
: Triggers when all units with '''canrecruit=yes''' (that is, all leaders) not allied with side 1 are killed.&lt;br /&gt;
&lt;br /&gt;
; victory&lt;br /&gt;
: In this scenario, any tag of the form '''[endlevel] result=victory [/endlevel]''' will be automatically preceded by all actions in this tag. It helps debugging if the victory event allows you to safely advance to any of the possible next maps after using the &amp;quot;:n&amp;quot; command. Scenarios where key units are picked up before the victory, or where some action chosen earlier determines which map to advance to, make it hard to quickly test scenarios in a campaign. (See also: [endlevel], [[DirectActionsWML]])&lt;br /&gt;
&lt;br /&gt;
; defeat&lt;br /&gt;
: In this scenario, any tag of the form '''[endlevel] result=defeat [/endlevel]''' will be automatically preceded by all actions in this tag. (See also [endlevel], [[DirectActionsWML]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Filters can be applied to the following event triggers (see [[FilterWML]]; see also below). The actions specified in the event tag will be executed only if the filter returns true. &lt;br /&gt;
These event triggers are all actions by units ('''moveto''', '''attack''') or things that happen to units ('''recruit''', '''advance'''). When one of these events is triggered, the position of the active unit (referred to as the '''primary unit''') is stored in the variables '''x1''' and '''y1''' and the position of any unit that primary unit does something to is stored in the variables '''x2''' and '''y2''' (this unit is referred to as the '''secondary unit''' below). '' These units are also automatically stored in the variables 'unit' and 'second_unit' as if they had been stored using the '''[store_unit]''' tag. see [[SingleUnitWML]]&lt;br /&gt;
&lt;br /&gt;
; moveto&lt;br /&gt;
: Triggers after the primary unit moves. Typically this is used when the primary unit gets to a particular location and a filter for the location of the primary unit is included; remember that this is the location that the primary unit lands on, not the location it started on or any location it travels on.&amp;lt;br /&amp;gt;''An '''[allow_undo]''' tag anywhere within a moveto event will cancel any lack of undo functionality the event would have caused. Note that undo functionality will only move the unit back to its former location; it will not other changes to the game caused by the event. Thus it is up to the scenario designer to use this tag correctly.'' {{DevFeature}} $x2 and $y2 refer to the hex the unit came from.&lt;br /&gt;
&lt;br /&gt;
; sighted&lt;br /&gt;
: Triggers when the primary unit becomes visible to the secondary unit in particular after not being visible to the secondary unit's side (so if the secondary unit's side doesn't have shroud or fog, the event never triggers). This happens both when the primary unit moves into view during its turn, and when the secondary unit moves to a location where it can see the primary unit. (This editor hasn't tested whether the event triggers multiple times if the primary unit moves into view of multiple units at once, or if not, which one gets chosen to be the secondary unit here.) (Note: it appears that when a sighted event is triggered because an enemy unit moves into your field of view, the game engine cannot determine which unit (on your side) sees the unit that moved, and so it fires a ''name=sighted'' event without setting ''$second_unit''. This means that, for example, using ''speaker=second_unit'' inside a message tag may fail.)&lt;br /&gt;
&lt;br /&gt;
; attack&lt;br /&gt;
: Triggers when the primary unit attacks the secondary unit.&lt;br /&gt;
&lt;br /&gt;
; attack end&lt;br /&gt;
: Similar to '''attack''', but is triggered ''after'' the fight instead of before. Note that if either unit is killed during the fight, this event triggers before any '''die''' events.&lt;br /&gt;
&lt;br /&gt;
; attacker hits&lt;br /&gt;
: Triggers when the the primary unit (the attacker) hits the secondary unit (the defender). The value of the WML variable '''damage_inflicted''' is set to the number of hitpoints inflicted by the attacker.&lt;br /&gt;
&lt;br /&gt;
; attacker misses&lt;br /&gt;
: Same as ''attacker hits'', but is triggered when the attacker misses.&lt;br /&gt;
&lt;br /&gt;
; defender hits&lt;br /&gt;
: Triggers when the primary unit (the attacker) is hit in retaliation by the secondary unit (the defender). The value of the WML variable '''damage_inflicted''' is set to the number of hitpoints inflicted by the defender.&lt;br /&gt;
&lt;br /&gt;
; defender misses&lt;br /&gt;
: Same as ''defender hits'', but is triggered when the defender misses.&lt;br /&gt;
&lt;br /&gt;
; stone&lt;br /&gt;
: Triggers when the primary unit is hit by an attack with the 'stones' ability (See ''stones'', [[AbilitiesWML]]) by the secondary unit (the unit with the 'stones' ability).&lt;br /&gt;
&lt;br /&gt;
; last breath&lt;br /&gt;
: Triggers when the primary unit is killed by the secondary unit, but before the death animation is triggered.&lt;br /&gt;
&lt;br /&gt;
; die&lt;br /&gt;
: Triggers when the primary unit is killed by the secondary unit.&lt;br /&gt;
&lt;br /&gt;
; capture&lt;br /&gt;
: Triggers when the primary unit captures a village. The village may have been previously neutral, or previously owned by another side; merely moving into your own villages does not constitute a capture.&lt;br /&gt;
&lt;br /&gt;
; recruit&lt;br /&gt;
: Triggers when the primary unit is recruited. (That is, when a unit is recruited it will trigger this event and this event's filter will filter that unit.).&lt;br /&gt;
&lt;br /&gt;
; prerecruit&lt;br /&gt;
: Triggers when the primary unit is recruited but before it is displayed.&lt;br /&gt;
&lt;br /&gt;
; recall&lt;br /&gt;
: Triggers after a unit is recalled.&lt;br /&gt;
&lt;br /&gt;
; prerecall&lt;br /&gt;
: Triggers when a unit is recalled but before it is displayed.&lt;br /&gt;
&lt;br /&gt;
; advance&lt;br /&gt;
: Triggers just before the primary unit is going to advance to another unit.&lt;br /&gt;
&lt;br /&gt;
; post advance&lt;br /&gt;
: Triggers just after the primary unit has advanced to another unit.&lt;br /&gt;
&lt;br /&gt;
; select&lt;br /&gt;
: Triggers when the primary unit is selected. Also triggers when ending a move, as the game keeps the moving unit selected by selecting it again at the end of movement. ''Note: in networked multiplayer, these events are only executed by the client on which the event is triggered, leading to out of sync errors if you modify the game state in the event.''&lt;br /&gt;
&lt;br /&gt;
; menu item X&lt;br /&gt;
: Triggers when a WML menu item with id=''X'' is selected. ''Note: if the menu item has a [command], this event may be executed before or after the command; there is no guarantee.''&lt;br /&gt;
&lt;br /&gt;
=== Custom events.&lt;br /&gt;
&lt;br /&gt;
An event with a custom name may be invoked using the [[InternalActionsWML#.5Bfire_event.5D|[fire_event]]] tag.  Normally you'll use such custom events as named subroutines to be called by events with predefined types.  One common case of this, for example, is that more than one '''sighted''' events might fire the same custom event that changes the scenario objectives.&lt;br /&gt;
&lt;br /&gt;
=== Optional Keys and Tags ===&lt;br /&gt;
&lt;br /&gt;
These keys and tags are more complex ways to filter when an event should trigger:&lt;br /&gt;
&lt;br /&gt;
==== first_time_only ====&lt;br /&gt;
: Whether the event should be removed from the scenario after it is triggered. There are two possible values for this key:&lt;br /&gt;
: ''first_time_only=yes''&lt;br /&gt;
:: Default behavior if key is omitted. The event will trigger the first time it can and never again.&lt;br /&gt;
: ''first_time_only=no''&lt;br /&gt;
:: The event will every time the criteria are met instead of only the first time.&lt;br /&gt;
&lt;br /&gt;
==== [filter] ====&lt;br /&gt;
: The event will only trigger if the primary unit matches this filter.&lt;br /&gt;
:* [[StandardUnitFilter]]: selection criteria&lt;br /&gt;
&lt;br /&gt;
==== [filter_second] ====&lt;br /&gt;
: Like [filter], but for the secondary unit.&lt;br /&gt;
:* [[StandardUnitFilter]]: selection criteria&lt;br /&gt;
&lt;br /&gt;
==== [filter_attack] ====&lt;br /&gt;
: Can be used to set additional filtering criteria for the primary unit and the secondary unit that are not generally available in a standard unit filter. Can be used in events ''attack'', ''attacker hits'', ''attacker misses'', ''defender hits'', ''defender misses'' and ''attack end''. For more information and other filter keys, see [[FilterWML]].&lt;br /&gt;
:* '''name''': the name of the weapon used.&lt;br /&gt;
:* '''range''': the range of the weapon used.&lt;br /&gt;
:* '''special''': filter on the attack's special power.&lt;br /&gt;
&lt;br /&gt;
==== [filter_second_attack] ====&lt;br /&gt;
: Like [filter_attack], but for the secondary unit.&lt;br /&gt;
:* '''name''': the name of the weapon used.&lt;br /&gt;
:* '''range''': the range of the weapon used.&lt;br /&gt;
:* '''special''': filter on the attack's special power.&lt;br /&gt;
&lt;br /&gt;
==== [event] ====&lt;br /&gt;
: A special case 'action', the [event] tag may be used to create a [[#Nested Events|nested event]].&lt;br /&gt;
&lt;br /&gt;
==== delayed_variable_substitution ====&lt;br /&gt;
: This key is only relevant inside of a [[#Delayed Variable Substitution|nested event]] and controls when variable substitution will occur in those special case actions.&lt;br /&gt;
&lt;br /&gt;
=== Actions triggered by [event] ===&lt;br /&gt;
&lt;br /&gt;
After the trigger conditions have been met, all action tags within the [event] tag are executed in the order they are written in.&lt;br /&gt;
&lt;br /&gt;
There are 3 main types of actions:&lt;br /&gt;
* direct actions ([[DirectActionsWML]]) which have a direct effect on gameplay&lt;br /&gt;
* display actions ([[InterfaceActionsWML]]) which show something to the user&lt;br /&gt;
* internal actions ([[InternalActionsWML]]) which are used by WML internally&lt;br /&gt;
&lt;br /&gt;
Several actions use standard filters to find out which units&lt;br /&gt;
to execute the command on.  These are denoted by the phrases&lt;br /&gt;
&amp;quot;standard unit filter&amp;quot; and &amp;quot;standard location filter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Nested Events ===&lt;br /&gt;
&lt;br /&gt;
There is one special type of action: event creation.  By placing an '''[event]''' tag inside another '''[event]''' tag, the nested event is spawned (created) when the parent (outer) event is encountered (when executing the contents of the parent event).&lt;br /&gt;
&lt;br /&gt;
([[#Nested Event Example|See Examples]])&lt;br /&gt;
&lt;br /&gt;
==== Delayed Variable Substitution ====&lt;br /&gt;
&lt;br /&gt;
Variable substitution for a nested event can happen either when it is spawned by the parent event or when it is triggered itself. This is controlled with the key '''delayed_variable_substitution''' which is used in the nested event.&lt;br /&gt;
&lt;br /&gt;
If this key is set to ''yes'', the variables in the nested event will contain values from the turn in which the ''nested'' event was triggered. ''This is the default behavior if the key is omitted.'' If set to ''no'', the variables in the nested event are set at the time the ''parent'' event is triggered.&lt;br /&gt;
&lt;br /&gt;
This behavior can be fine tuned with a special syntax when referencing variables. Instead of the normal '''$variable''' syntax, use '''$|variable''' to cause a variable to contain values relevant to the turn in which the nested event was triggered even when '''delayed_variable_substitution''' is set to ''no''. In this way you can have a mix of variables relevant to the parent and nested event trigger times.&lt;br /&gt;
&lt;br /&gt;
([[#Delayed Variable Substitution Example|See Examples]])&lt;br /&gt;
&lt;br /&gt;
== Multiplayer safety ==&lt;br /&gt;
&lt;br /&gt;
It is only possible to use [message] with input and random numbers in events that are synchronous. This limitation is caused because that WML requires data from remote hosts which is only available after network synchronisation.&lt;br /&gt;
&lt;br /&gt;
List of event that are synchronous:&lt;br /&gt;
* moveto&lt;br /&gt;
* sighted &lt;br /&gt;
* attack&lt;br /&gt;
* attack_end &lt;br /&gt;
* attacker hits &lt;br /&gt;
* attacker misses &lt;br /&gt;
* defender hits&lt;br /&gt;
* defender misses &lt;br /&gt;
* stone&lt;br /&gt;
* last breath &lt;br /&gt;
* die&lt;br /&gt;
* capture &lt;br /&gt;
* recruit&lt;br /&gt;
* prerecruit &lt;br /&gt;
* recall &lt;br /&gt;
* prerecall &lt;br /&gt;
* advance &lt;br /&gt;
* post_advance &lt;br /&gt;
* events fired from WML event handler that is synchronous&lt;br /&gt;
* new turn {{DevFeature}}&lt;br /&gt;
* side turn {{DevFeature}}&lt;br /&gt;
* turn X {{DevFeature}}&lt;br /&gt;
* turn refresh {{DevFeature}}&lt;br /&gt;
&lt;br /&gt;
There is also event that are synchronous if fired by engine but they can be fired by wml tags too from non-synchronous event. So when you are using them you must be extra careful. For example [unsotre_unit] unit may trigger unit advancement that will fire ''advance'' and ''post advance'' events.&lt;br /&gt;
&lt;br /&gt;
== A Trap for the Unwary ==&lt;br /&gt;
&lt;br /&gt;
It is perfectly possible (and, in fact, useful) to have multiple events with the same predefined name and thus the same trigger condition.  However, it is not defined what order such events will fire in, so you need to code so the order &lt;br /&gt;
will not matter.&lt;br /&gt;
&lt;br /&gt;
Because of the above, you need to beware of using macros to generate events. If you include a macro expanding to an event definition twice, the event will be executed twice (not once) each time the trigger condition fires. Consider this code:&lt;br /&gt;
&lt;br /&gt;
 #define DOUBLE&lt;br /&gt;
     [event]&lt;br /&gt;
         name=multiply_by_2&lt;br /&gt;
         {VARIABLE_OP 2_becomes_4 multiply 2}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
 &lt;br /&gt;
 {DOUBLE}&lt;br /&gt;
 {DOUBLE}&lt;br /&gt;
 &lt;br /&gt;
 {VARIABLE 2_becomes_4 2}&lt;br /&gt;
 		&lt;br /&gt;
 [fire_event]&lt;br /&gt;
     name=multiply_by_2&lt;br /&gt;
 [/fire_event]&lt;br /&gt;
 &lt;br /&gt;
 {DEBUG_MSG &amp;quot;$2_becomes_4 should be 4&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
After it executes, the debug message will reveal that the variable has been set to 8, not 4.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Notes and Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Primary/Secondary Unit Speaker Example ===&lt;br /&gt;
&lt;br /&gt;
In events, the primary unit can be referred to as '''unit''' and the secondary unit can be referred to as '''second_unit''' in [message] tags using the '''speaker''' key. For example:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=die&lt;br /&gt;
     [message]&lt;br /&gt;
         speaker='''second_unit'''&lt;br /&gt;
         message= _ &amp;quot;Hahaha! I finally killed you!&amp;quot;&lt;br /&gt;
     [/message]&lt;br /&gt;
 &lt;br /&gt;
     [message]&lt;br /&gt;
         speaker='''unit'''&lt;br /&gt;
         message= _ &amp;quot;It's not over yet! I'll come back to haunt you!&amp;quot;&lt;br /&gt;
     [/message]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
=== Nested Event Example ===&lt;br /&gt;
&lt;br /&gt;
An event is created for a portal that opens on turn 10. The parent (or 'outer') event executes on turn 10 at which point the nested moveto event is created. This nested event executes when a player steps on a certain spot.&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         # moving to 5,8 will trigger this event only on turn 10 and after&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
An equivalent way of doing this would be to create a single moveto event with an '''[if]''' statement to check for turn number but using nested '''[event]''' tags is a convenient shortcut to accomplish this task without resorting to '''[if]''' statements.&lt;br /&gt;
&lt;br /&gt;
=== Delayed Variable Substitution Example ===&lt;br /&gt;
&lt;br /&gt;
This code will display the turn on which the nested ''moveto'' event happens.&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=yes&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;} &lt;br /&gt;
    [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Since this is the default behavior for the '''delayed_variable_substitution''' key, the following example is identical.&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;} &lt;br /&gt;
    [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
This code will always display &amp;quot;Turn 10&amp;quot; when the nested ''moveto'' event happens. This is because the variable substitution is done when the parent event is triggered and spawns the nested event, ''not'' when the nested event is triggered.&lt;br /&gt;
 &lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=no&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;} &lt;br /&gt;
    [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Finally, this example is identical to the first two, in that it will display the turn on which the nested ''moveto'' event happens despite the fact that the '''delayed_variable_substitution''' key is set to ''no''. This is because the special '''$|variable''' syntax is used.&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=no&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $|turn_number&amp;quot;} &lt;br /&gt;
    [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[FilterWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=How_to_play_Horseman&amp;diff=30739</id>
		<title>How to play Horseman</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=How_to_play_Horseman&amp;diff=30739"/>
		<updated>2009-06-17T19:12:02Z</updated>

		<summary type="html">&lt;p&gt;A Guy: Previously, the paragraph was blatantly wrong.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Horseman is a very powerful unit. It can scout for villages and pick off lone units, but it can also form your front line of combat or hang back and kill wounded units in the middle of a battle. It has high HP, a good attack, many moves, and resists most damage types. The one downside: It costs a lot.&lt;br /&gt;
&lt;br /&gt;
Hopefully, this guide will make the Horseman worth its cost to you, or even worth more than that.&lt;br /&gt;
&lt;br /&gt;
==When to get the Horseman==&lt;br /&gt;
The Horseman has a very different role in campaigns, as opposed to multiplayer. In campaigns, the goal is usually to win quickly, which the Horseman excels at, while in multiplayer, the goal is to win at all, which entails many different strategies.&lt;br /&gt;
&lt;br /&gt;
===Campaigns===&lt;br /&gt;
There are very few situations in a campaign in which Horsemen would not benefit you. Early on, Horsemen can win you some quick victories and gold; later, a corps of Knights or Grand Knights is perfect for doing the real heavy work of a battle. The Grand Knight is one of the highest-HP units in the game, so it makes a very good line-holder in an open area without normal defensive terrain, which would otherwise be a weakness.&lt;br /&gt;
&lt;br /&gt;
The Knight really isn't a unit that you can do without, if you're allowed to get it. Knights are the perfect shock troops to use where other units fail you. In Heir to the Throne, Horsemen and Knights can win quickly in a battle which would otherwise involve slogging through streams of enemies, such as Crossroads or Northern Winter; in The Rise of Wesnoth, many scenarios, like the Midlands have open ground, easy for horse units to dominate, and lots of Orcs, often the ideal opponents of Knights; in the Eastern Invasion, Knights can be made into Paladins, perfect for fighting the Undead, or Grand Knights, which massacre everything else in the campaign, and can be given holy ankhs to make them even more devastating than Paladins.&lt;br /&gt;
&lt;br /&gt;
It's usually not such a good idea, though, to use Horsemen in cave scenarios. The exception is when you have a Paladin and face Undead; if the map is small enough that you can get it to the battle, its holy weaponry makes up for its other weaknesses.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
The Horseman is significantly less valuable here. In campaigns, you often have more gold than you could possibly spend, making cost no issue; in multiplayer, cost is always an issue.&lt;br /&gt;
&lt;br /&gt;
For this reason, in multiplayer, you cannot get hordes of Horsemen, and deal devastating damage to all the enemies. However, you can still get a few horsemen and deal devastating damage to a few enemies.&lt;br /&gt;
&lt;br /&gt;
If the enemy fields too many low-melee archers, get a horseman. If the enemy fields too many Drakes, get a horseman, If the enemy fields too many Spearmen, don't get a horseman! Overall, in the Default era, the Horseman is best against Northerners, mediocre against Rebels, Drakes, and Knalgans, and downright bad against Loyalists and Undead.&lt;br /&gt;
&lt;br /&gt;
Never get Horsemen against Loyalists. Loyalists regularly use Spearmen, Bowmen, and Heavy Infantry, all of which are devastating to Horsemen. As a scout, the Cavalryman is cheaper and less likely to get massacred.&lt;br /&gt;
&lt;br /&gt;
Don't get Horsemen against Undead either, unless the Undead player has already recruited stupidly (e.g. all Dark Adepts.) Even in that situation, Cavalrymen may be the better choice.&lt;br /&gt;
&lt;br /&gt;
None of the Knalgans' units is that great against the Horseman, but only the Poacher is weak to the Horseman, and it's best not to field Horsemen unless they can be sure of some effectiveness.&lt;br /&gt;
&lt;br /&gt;
Elves are frail and easy to take down with a Horseman, but if you let it near them, an Elvish Shaman would be very nasty, and the Horseman is no good at all against Woses. (Side note: A Knight is very effective against Woses.) If he goes with Shamans and Woses, don't get a horseman. If the opponent uses Elvish Fighters and Archers a lot, do get a horseman. Just don't be stupid and attack them in forest.&lt;br /&gt;
&lt;br /&gt;
Drakes are another dubious case. If the opponent gets Clashers or Saurian Skirmishers, then the Horseman is very vulnerable and shouldn't be recruited; however, if they don't, then a Horseman will easily cut down Burners, Augurs, and even Fighters. On the other hand, it's a pretty weak opponent who will fail to get either Clashers or Skirmishers when faced with a Loyalist opponent.&lt;br /&gt;
&lt;br /&gt;
Against Northerners, a Horseman is almost always effective. All northerner units are Chaotic, meaning that you can get a damage bonus while your opponents have a damage penalty. No northerner unit except the Goblin Spearman is any challenge to the properly played Horseman, and the Spearman, though it is a risky fight, is so weak that it can often be killed in one hit.&lt;br /&gt;
&lt;br /&gt;
==What do do with the Horseman==&lt;br /&gt;
&lt;br /&gt;
===General tactics===&lt;br /&gt;
Attack the following: Low-melee archers, low-defense one-hit-kills, and units that need to die ASAP to win the battle.&lt;br /&gt;
Do not attack the following: High-melee units, high-defense full-HP units, and units that can kill the Horseman and thereby lose you the battle.&lt;br /&gt;
&lt;br /&gt;
The Horseman is an opportunist. If there's something to attack, do so. If there's nothing to attack, run away and grab a village.&lt;br /&gt;
&lt;br /&gt;
A common mistake with the Horseman is to attack, kill something easily, and then have the Horseman cut to ribbons the next turn by archers. This is no good. The Horseman costed more than that unit. One thing never to do is to attack with the Horseman when it is open to attack like this. Always defend the Horseman if it attacks from a position open to enemy units.&lt;br /&gt;
&lt;br /&gt;
Defense isn't always that obvious, though. If the Horseman can attack, be killed by archers, and then your army can kill the archers, then the Horseman is defended. If the Horseman can attack, be killed by archers, and then you can break through their battle lines which are no longer supported by the archers, then the Horseman is defended. If the Horseman can attack, be killed by archers, and then you can grab enemy villages and split the enemy army, then the Horseman is defended.&lt;br /&gt;
&lt;br /&gt;
Of course, you can always defend it by putting units around it, but be careful that you won't lose the battle just because the enemy kills a guard and then sneaks in and shoots down the Horseman. Threats are more secure, if the enemy can't remove them.&lt;br /&gt;
&lt;br /&gt;
Another common mistake with the Horseman is to attack a high-defense fighter that can kill the Horseman, just because the Horseman can kill it in one hit. Now, if killing that fighter is crucial to your victory in the battle, then by all means, do it; but if the fighter is in an insignificant side position, then the attack is suicidal. Remember, a wounded unit is probably worth about half as much as the Horseman. If you let it do damage to you, it had better be very little damage, or very unlikely, because otherwise, you're losing out.&lt;br /&gt;
&lt;br /&gt;
Also, never attack a unit that can kill the Horseman and level up by doing so, unless it is the only way to stop it, even if that unit is in 20% defense and can be killed in one hit.&lt;br /&gt;
&lt;br /&gt;
A third mistake, just as bad as the others, is to leave the Horseman running around grabbing villages and never reaching the main battle. It's a waste of gold. You can save five gold on that by using Cavalrymen instead (or Elvish Scouts if this is HttT) but even then, it's pretty wasteful. The unit has an attack and is meant to use it.&lt;br /&gt;
&lt;br /&gt;
At the very least, if there are truly no attack opportunities, keep the horseman close enough to the battle to strike at any moment. The threat cripples your opponent's strategy, especially relating to his leader. The leader is often a level 2 unit which can be taken out in one attack by a lucky Horseman; if you see an opportunity to swing for the enemy leader, (although not so much one of several enemy leaders in team games) you should usually take it. It gives you a chance to win the game immediately, and even the worst-case situation, losing the Horseman and doing no damage, doesn't decrease your overall chance to win by that much.&lt;br /&gt;
&lt;br /&gt;
Finally, remember the time of day. You don't have to worry about it too much in itself, as long as you check how much damage you're actually doing, but you'll find that the horseman is much more effective during the day, obviously - you may want to retreat your other units at night, or not commit to a battle that will last until night, if you want to rely on Horseman support.&lt;br /&gt;
&lt;br /&gt;
===Leveling up===&lt;br /&gt;
You choose, when leveling up, between the Knight and the Lancer.&lt;br /&gt;
&lt;br /&gt;
In campaigns, always get the Knight. The Lancer is easier to kill and doesn't advance, which are important in campaigns, while a few extra moves and more raw damage are not. In campaigns, you can't afford to lose random level 2 units, and the Lancer really can't hold the line either.&lt;br /&gt;
&lt;br /&gt;
In multiplayer, a lancer may be a decent alternative choice. They have more strikes with their charging weapon, giving them more damage potential overall. The huge movement they have also allows them to get through enemy defenses and hit a leader.&lt;br /&gt;
&lt;br /&gt;
===Campaign-specific tactics===&lt;br /&gt;
In Heir to the Throne, or The Rise of Wesnoth, where gold is plentiful, a prime strategy is to recruit castle after castle of Horsemen and run down the enemy by sheer numbers. Low-XP horsemen can be used for suicide rushes on powerful units, while high-XP horsemen can be used to take out weak units, such as one hit kills or Archers and Troll Whelps during the day. If you are going for level 3 knights, then many units can be killed in one hit by a Knight's charge, but if you want more level 2 knights, their swords are also very useful for softening up enemies for Horsemen to kill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[How to play Loyalists]] article&lt;br /&gt;
&lt;br /&gt;
[[How to play...]] series&lt;br /&gt;
&lt;br /&gt;
[[Category: How to Play]]&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30606</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30606"/>
		<updated>2009-05-25T20:54:13Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| 3p Rivalry]] (By Golbeeze and A_Guy)&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| Modern Combat]] (By PsychoticKittens and A_Guy)&lt;br /&gt;
&lt;br /&gt;
I'm an above average WML writer.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30605</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30605"/>
		<updated>2009-05-25T20:53:59Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| 3p Rivalry]] (By Golbeeze and A_Guy)&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| Modern Combat]] (By PsychoticKittens and A_Guy)&lt;br /&gt;
&lt;br /&gt;
I'm an above average WML writer, if you want me to work on a scenario with you, please feel free to message me.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30604</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30604"/>
		<updated>2009-05-25T20:53:35Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| 3p Rivalry]] (By Golbeeze and A_Guy)&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| Modern Combat]] (By PsychoticKittens and A_Guy)&lt;br /&gt;
&lt;br /&gt;
I'm a above mid-level WML writer, if you want me to work on a scenario with you, please feel free to message me.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30603</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=30603"/>
		<updated>2009-05-25T20:38:44Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| 3p Rivalry]] (By Golbeeze and A_Guy)&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| Modern Combat]] (By PsychoticKittens and A_Guy)&lt;br /&gt;
&lt;br /&gt;
I'm a mid-level WML writer, if you want me to work on a scenario with you, please feel free to message me.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=28324</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=28324"/>
		<updated>2009-02-21T19:53:12Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| 3p Rivalry]] (By Golbeeze and A_Guy)&lt;br /&gt;
&lt;br /&gt;
I'm a mid-level WML writer, if you want me to work on a scenario with you, please feel free to message me.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27468</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27468"/>
		<updated>2008-11-21T02:58:38Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019| 3p Rivalry]] (By Golbeeze and A_Guy)&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27467</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27467"/>
		<updated>2008-11-21T02:58:11Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019|3p Rivalry]] (By Golbeeze and A_Guy)&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27466</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27466"/>
		<updated>2008-11-21T02:57:41Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019|Rivalry]] (By Golbeeze and A_Guy)&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27465</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27465"/>
		<updated>2008-11-21T02:57:33Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019|3pRivalry]] (By Golbeeze and A_Guy)&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27464</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27464"/>
		<updated>2008-11-21T02:54:33Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019|3p_Rivalry]] (By Golbeeze and A_Guy)&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27463</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27463"/>
		<updated>2008-11-21T02:54:15Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. These are the scenarios I have so far.&lt;br /&gt;
&lt;br /&gt;
[[http://wesnoth.org/forum/viewtopic.php?f=15&amp;amp;t=23019|3p Rivalry]] (By Golbeeze and A_Guy)&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27456</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27456"/>
		<updated>2008-11-20T02:26:26Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. I have nothing to be proud of as of now, but hopefully, I will soon.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27036</id>
		<title>User:A Guy</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:A_Guy&amp;diff=27036"/>
		<updated>2008-10-09T15:46:03Z</updated>

		<summary type="html">&lt;p&gt;A Guy: New page: Hello, there. I have nothing to be proud of as of now, but hopefully, I will.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, there. I have nothing to be proud of as of now, but hopefully, I will.&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=26975</id>
		<title>Template:WML Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=26975"/>
		<updated>2008-10-06T23:10:33Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;gallery&amp;quot; style=&amp;quot;width:175px;float: right;border: 1px solid #B48648; color:#B48648; font-size: 7pt;margin-left;10px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;float: right;&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;editlink noprint plainlinksneverexpand&amp;quot;&amp;gt;[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit ]&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
'''WML Tags'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|''A:'' &lt;br /&gt;
[[AbilitiesWML|abilities]],&lt;br /&gt;
[[CampaignWML#The_.5Babout.5D_tag|about]],&lt;br /&gt;
[[UnitWML|advancefrom]],&lt;br /&gt;
[[UnitWML|advancement]],&lt;br /&gt;
[[StatisticalScenarioWML|advances]],&lt;br /&gt;
[[AiWML|ai]],&lt;br /&gt;
[[DirectActionsWML|allow_recruit]],&lt;br /&gt;
[[DirectActionsWML|allow_undo]],&lt;br /&gt;
[[InterfaceActionsWML|animate_unit]],&lt;br /&gt;
[[AnimationWML|animation]],&lt;br /&gt;
[[VariablesWML|array]],&lt;br /&gt;
[[UnitWML|attack]],&lt;br /&gt;
[[AnimationWML|attack_filter]], &lt;br /&gt;
[[StatisticalScenarioWML|attacks]],&lt;br /&gt;
[[AiWML|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[UnitWML|base_unit]],[[CampaignWML#The_.5Bbinary_path.5D_tag|binary_path]],[[HelpWML|bold]];&lt;br /&gt;
|-&lt;br /&gt;
|''C:'' &lt;br /&gt;
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]], [[DirectActionsWML|capture_village]], [[ReplayWML|choose]],&lt;br /&gt;
[[InternalActionsWML|clear_variable]],&lt;br /&gt;
[[InterfaceActionsWML|colour_adjust]],&lt;br /&gt;
[[ReplayWML|command]];&lt;br /&gt;
|-&lt;br /&gt;
|''D:'' &lt;br /&gt;
[[AbilitiesWML|damage]],[[StatisticalScenarioWML|deaths]],[[InterfaceActionsWML|debug_message]],[[UnitWML|defend]],[[StatisticalScenarioWML|defends]],&lt;br /&gt;
[[UnitWML|defense]],&lt;br /&gt;
[[InterfaceActionsWML|delay]],&lt;br /&gt;
[[ReplayWML|destination]],&lt;br /&gt;
[[DirectActionsWML|disallow_recruit]],&lt;br /&gt;
[[InternalActionsWML|do]];&lt;br /&gt;
|-&lt;br /&gt;
|''E:'' &lt;br /&gt;
[[EffectWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],&lt;br /&gt;
[[DirectActionsWML|endlevel]],&lt;br /&gt;
[[DirectActionsWML|end_turn]],&lt;br /&gt;
[[EraWML|era]],&lt;br /&gt;
[[EventWML|event]],&lt;br /&gt;
[[ThemeWML|expenses]];&lt;br /&gt;
|-&lt;br /&gt;
|''F:'' &lt;br /&gt;
[[FilterWML|filter]], [[FilterWML|filter_location]], [[FilterWML|filter_second]], [[FilterWML|filter_vision]], [[InternalActionsWML|fire_event]], [[HelpWML|format]], [[AnimationWML|frame]];&lt;br /&gt;
|-&lt;br /&gt;
|''G:'' &lt;br /&gt;
[[GameConfigWML|game_config]], [[ScenarioWML|generator]], [[DirectActionsWML|gold]], [[ThemeWML|gold]];&lt;br /&gt;
|-&lt;br /&gt;
|''H:'' &lt;br /&gt;
[[InternalActionsWML|have_unit]], [[HelpWML|header]], [[DirectActionsWML|heal_unit]],[[InterfaceActionsWML|hide_unit]];&lt;br /&gt;
|-&lt;br /&gt;
|''I:'' &lt;br /&gt;
[[InternalActionsWML|if]], [[TimeWML|illuminated_time]], [[TerrainGraphicsWML|image]],&lt;br /&gt;
[[HelpWML|img]], [[ThemeWML|income]], [[InternalActionsWML|insert_tag]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[HelpWML|jump]], [[InternalActionsWML|join]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[LabelWML|label]] ([[InterfaceActionsWML|map]], [[ThemeWML|theme]]), [[LanguageWML|language]], [[AiWML|leader_goal]];&lt;br /&gt;
|-&lt;br /&gt;
|''M:'' &lt;br /&gt;
[[ThemeWML|main_map]],[[ThemeWML|menu]], [[InterfaceActionsWML|message]], [[ThemeWML|mini_map]],&lt;br /&gt;
[[AnimationWML|missile_frame]], [[SingleUnitWML|modifications]], [[DirectActionsWML|modify_side]],&lt;br /&gt;
[[DirectActionsWML|modify_turns]], [[ReplayWML|move]], [[InterfaceActionsWML|move_unit_fake]], [[UnitWML|movement costs]],&lt;br /&gt;
[[UnitsWML|movetype]], [[ScenarioWML|multiplayer]], [[EraWML|multiplayer_side]], [[InterfaceActionsWML|music]];&lt;br /&gt;
|-&lt;br /&gt;
|''N:'' &lt;br /&gt;
[[AnimationWML|neighbour_unit_filter]], [[FilterWML|not]], [[ThemeWML|num_units]];&lt;br /&gt;
|-&lt;br /&gt;
|''O:'' &lt;br /&gt;
[[DirectActionsWML|object]], [[InterfaceActionsWML|objectives]], [[InterfaceActionsWML|objective]],&lt;br /&gt;
[[ThemeWML|observers]], [[InterfaceActionsWML|option]], [[InternalActionsWML|or]];&lt;br /&gt;
|-&lt;br /&gt;
|''P:'' &lt;br /&gt;
[[ThemeWML|panel]], [[IntroWML|part]], [[DirectActionsWML|place_shroud]], [[ThemeWML|position]],&lt;br /&gt;
[[InterfaceActionsWML|print]], [[AiWML|protect_location]], [[AiWML|protect_unit]];&lt;br /&gt;
|-&lt;br /&gt;
|''R:'' &lt;br /&gt;
[[UnitsWML|race]], [[ReplayWML|random]], [[ReplayWML|recall]], [[StatisticalScenarioWML|recalls]],&lt;br /&gt;
[[ReplayWML|recruit]], [[StatisticalScenarioWML|recruits]], [[InterfaceActionsWML|redraw]],&lt;br /&gt;
[[HelpWML|ref]], [[DirectActionsWML|remove_shroud]], [[InterfaceActionsWML|remove_unit_overlay]],&lt;br /&gt;
[[InterfaceActionsWML|removeitem]], [[InterfaceActionsWML|remove_sound_source]], [[SavefileWML|replay]], [[SavefileWML|replay_start]],&lt;br /&gt;
[[UnitWML|resistance]], [[ThemeWML|resolution]], [[ReplayWML|results]], [[InternalActionsWML|role]];&lt;br /&gt;
|-&lt;br /&gt;
|''S:'' &lt;br /&gt;
[[SavefileWML|save]], [[ScenarioWML|scenario]],&lt;br /&gt;
[[InterfaceActionsWML|scroll]], [[InterfaceActionsWML|scroll_to]],&lt;br /&gt;
[[InterfaceActionsWML|scroll_to_unit]], [[AnimationWML|secondary_attack_filter]], [[AnimationWML|secondary_unit_filter]], [[HelpWML|section]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D_.28SVN_trunk_only.29|set_menu_item]], [[DirectActionsWML|set_recruit]],&lt;br /&gt;
[[InternalActionsWML|set_variable]], [[InternalActionsWML|set_variables]], &lt;br /&gt;
[[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML|sound]], [[InterfaceActionsWML|sound_source]], [[ReplayWML|source]], [[EventWML|special_filter]], [[EventWML|special_filter_second]],&lt;br /&gt;
[[InternalActionsWML|split]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],&lt;br /&gt;
[[ThemeWML|status]], [[DirectActionsWML|stone]], [[InternalActionsWML|store_gold]], [[InternalActionsWML|store_locations]],&lt;br /&gt;
[[InternalActionsWML|store_map_dimensions]],&lt;br /&gt;
[[InternalActionsWML|store_starting_location]], [[InternalActionsWML|store_side]], [[InternalActionsWML|store_unit]], [[IntroWML|story]];&lt;br /&gt;
|-&lt;br /&gt;
|''T:'' &lt;br /&gt;
[[AiWML|target]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],&lt;br /&gt;
[[DirectActionsWML|teleport]], [[UnitWML|teleport_anim]],&lt;br /&gt;
terrain([[TerrainWML|define]], [[DirectActionsWML|create]]), [[TerrainGraphicsWML|terrain_graphics]], [[TerrainMaskWML|terrain_mask]], [[ScenarioWML#Test_scenario|test]],&lt;br /&gt;
[[WesCamp|textdomain]], [[ThemeWML|theme]], [[InternalActionsWML|then]],&lt;br /&gt;
[[TerrainGraphicsWML|tile]], [[TimeWML|time]], [[ScenarioWML|time_area]], [[ThemeWML|time_of_day]],&lt;br /&gt;
[[HelpWML|topic]], [[HelpWML|toplevel]], [[SingleUnitWML|trait]], [[ThemeWML|turn]], [[ScenarioWML|tutorial]];&lt;br /&gt;
|-&lt;br /&gt;
|''U:'' &lt;br /&gt;
[[InterfaceActionsWML|unhide_unit]], unit&amp;amp;nbsp;([[UnitWML|define]], [[SingleUnitWML|create]]),&lt;br /&gt;
[[ThemeWML|unit_abilities]], [[ThemeWML|unit_alignment]], [[ThemeWML|unit_description]], [[AnimationWML|unit_filter]], [[ThemeWML|unit_hp]], [[ThemeWML|unit_image]], [[ThemeWML|unit_level]], [[ThemeWML|unit_moves]],&lt;br /&gt;
[[InterfaceActionsWML|unit_overlay]], [[ThemeWML|unit_profile]], [[ThemeWML|unit_status]],&lt;br /&gt;
[[ThemeWML|unit_traits]], [[ThemeWML|unit_type]], [[ThemeWML|unit_weapons]], [[ThemeWML|unit_xp]],&lt;br /&gt;
[[UnitsWML|units]], [[DirectActionsWML|unstone]], [[DirectActionsWML|unstore_unit]], [[ThemeWML|upkeep]];&lt;br /&gt;
|-&lt;br /&gt;
| ''V:'' &lt;br /&gt;
[[InternalActionsWML|variable]], [[VariablesWML|variables]], [[SideWML|village]], [[ThemeWML|villages]];&lt;br /&gt;
|-&lt;br /&gt;
| ''W:'' &lt;br /&gt;
[[InternalActionsWML|while]], [[FilterWML|wml_filter]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=26974</id>
		<title>Template:WML Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=26974"/>
		<updated>2008-10-06T23:10:07Z</updated>

		<summary type="html">&lt;p&gt;A Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;gallery&amp;quot; style=&amp;quot;width:175px;float: right;border: 1px solid #B48648; color:#B48648; font-size: 7pt;margin-left;10px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span style=&amp;quot;float: right;&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;editlink noprint plainlinksneverexpand&amp;quot;&amp;gt;[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit ]&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
'''WML Tags'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|''A:'' &lt;br /&gt;
[[AbilitiesWML|abilities]],&lt;br /&gt;
[[CampaignWML#The_.5Babout.5D_tag|about]],&lt;br /&gt;
[[UnitWML|advancefrom]],&lt;br /&gt;
[[UnitWML|advancement]],&lt;br /&gt;
[[StatisticalScenarioWML|advances]],&lt;br /&gt;
[[AiWML|ai]],&lt;br /&gt;
[[DirectActionsWML|allow_recruit]],&lt;br /&gt;
[[DirectActionsWML|allow_undo]],&lt;br /&gt;
[[InterfaceActionsWML|animate_unit]],&lt;br /&gt;
[[AnimationWML|animation]],&lt;br /&gt;
[[VariablesWML|array]],&lt;br /&gt;
[[UnitWML|attack]],&lt;br /&gt;
[[AnimationWML|attack_filter]], &lt;br /&gt;
[[StatisticalScenarioWML|attacks]],&lt;br /&gt;
[[AiWML|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[UnitWML|base_unit]],[[CampaignWML#The_.5Bbinary_path.5D_tag|binary_path]],[[HelpWML|bold]];&lt;br /&gt;
|-&lt;br /&gt;
|''C:'' &lt;br /&gt;
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]], [[DirectActionsWML|capture_village]], [[ReplayWML|choose]],&lt;br /&gt;
[[InternalActionsWML|clear_variable]],&lt;br /&gt;
[[InterfaceActionsWML|colour_adjust]],&lt;br /&gt;
[[ReplayWML|command]];&lt;br /&gt;
|-&lt;br /&gt;
|''D:'' &lt;br /&gt;
[[AbilitiesWML|damage]],[[StatisticalScenarioWML|deaths]],[[InterfaceActionsWML|debug_message]],[[UnitWML|defend]],[[StatisticalScenarioWML|defends]],&lt;br /&gt;
[[UnitWML|defense]],&lt;br /&gt;
[[InterfaceActionsWML|delay]],&lt;br /&gt;
[[ReplayWML|destination]],&lt;br /&gt;
[[DirectActionsWML|disallow_recruit]],&lt;br /&gt;
[[InternalActionsWML|do]];&lt;br /&gt;
|-&lt;br /&gt;
|''E:'' &lt;br /&gt;
[[EffectWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],&lt;br /&gt;
[[DirectActionsWML|endlevel]],&lt;br /&gt;
[[DirectActionsWML|end_turn]],&lt;br /&gt;
[[EraWML|era]],&lt;br /&gt;
[[EventWML|event]],&lt;br /&gt;
[[ThemeWML|expenses]];&lt;br /&gt;
|-&lt;br /&gt;
|''F:'' &lt;br /&gt;
[[FilterWML|filter]], [[FilterWML|filter_location]], [[FilterWML|filter_second]], [[FilterWML|filter_vision]], [[InternalActionsWML|fire_event]], [[HelpWML|format]], [[AnimationWML|frame]];&lt;br /&gt;
|-&lt;br /&gt;
|''G:'' &lt;br /&gt;
[[GameConfigWML|game_config]], [[ScenarioWML|generator]], [[DirectActionsWML|gold]], [[ThemeWML|gold]];&lt;br /&gt;
|-&lt;br /&gt;
|''H:'' &lt;br /&gt;
[[InternalActionsWML|have_unit]], [[HelpWML|header]], [[DirectActionsWML|end_turn]],[[InterfaceActionsWML|hide_unit]];&lt;br /&gt;
|-&lt;br /&gt;
|''I:'' &lt;br /&gt;
[[InternalActionsWML|if]], [[TimeWML|illuminated_time]], [[TerrainGraphicsWML|image]],&lt;br /&gt;
[[HelpWML|img]], [[ThemeWML|income]], [[InternalActionsWML|insert_tag]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[HelpWML|jump]], [[InternalActionsWML|join]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[LabelWML|label]] ([[InterfaceActionsWML|map]], [[ThemeWML|theme]]), [[LanguageWML|language]], [[AiWML|leader_goal]];&lt;br /&gt;
|-&lt;br /&gt;
|''M:'' &lt;br /&gt;
[[ThemeWML|main_map]],[[ThemeWML|menu]], [[InterfaceActionsWML|message]], [[ThemeWML|mini_map]],&lt;br /&gt;
[[AnimationWML|missile_frame]], [[SingleUnitWML|modifications]], [[DirectActionsWML|modify_side]],&lt;br /&gt;
[[DirectActionsWML|modify_turns]], [[ReplayWML|move]], [[InterfaceActionsWML|move_unit_fake]], [[UnitWML|movement costs]],&lt;br /&gt;
[[UnitsWML|movetype]], [[ScenarioWML|multiplayer]], [[EraWML|multiplayer_side]], [[InterfaceActionsWML|music]];&lt;br /&gt;
|-&lt;br /&gt;
|''N:'' &lt;br /&gt;
[[AnimationWML|neighbour_unit_filter]], [[FilterWML|not]], [[ThemeWML|num_units]];&lt;br /&gt;
|-&lt;br /&gt;
|''O:'' &lt;br /&gt;
[[DirectActionsWML|object]], [[InterfaceActionsWML|objectives]], [[InterfaceActionsWML|objective]],&lt;br /&gt;
[[ThemeWML|observers]], [[InterfaceActionsWML|option]], [[InternalActionsWML|or]];&lt;br /&gt;
|-&lt;br /&gt;
|''P:'' &lt;br /&gt;
[[ThemeWML|panel]], [[IntroWML|part]], [[DirectActionsWML|place_shroud]], [[ThemeWML|position]],&lt;br /&gt;
[[InterfaceActionsWML|print]], [[AiWML|protect_location]], [[AiWML|protect_unit]];&lt;br /&gt;
|-&lt;br /&gt;
|''R:'' &lt;br /&gt;
[[UnitsWML|race]], [[ReplayWML|random]], [[ReplayWML|recall]], [[StatisticalScenarioWML|recalls]],&lt;br /&gt;
[[ReplayWML|recruit]], [[StatisticalScenarioWML|recruits]], [[InterfaceActionsWML|redraw]],&lt;br /&gt;
[[HelpWML|ref]], [[DirectActionsWML|remove_shroud]], [[InterfaceActionsWML|remove_unit_overlay]],&lt;br /&gt;
[[InterfaceActionsWML|removeitem]], [[InterfaceActionsWML|remove_sound_source]], [[SavefileWML|replay]], [[SavefileWML|replay_start]],&lt;br /&gt;
[[UnitWML|resistance]], [[ThemeWML|resolution]], [[ReplayWML|results]], [[InternalActionsWML|role]];&lt;br /&gt;
|-&lt;br /&gt;
|''S:'' &lt;br /&gt;
[[SavefileWML|save]], [[ScenarioWML|scenario]],&lt;br /&gt;
[[InterfaceActionsWML|scroll]], [[InterfaceActionsWML|scroll_to]],&lt;br /&gt;
[[InterfaceActionsWML|scroll_to_unit]], [[AnimationWML|secondary_attack_filter]], [[AnimationWML|secondary_unit_filter]], [[HelpWML|section]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D_.28SVN_trunk_only.29|set_menu_item]], [[DirectActionsWML|set_recruit]],&lt;br /&gt;
[[InternalActionsWML|set_variable]], [[InternalActionsWML|set_variables]], &lt;br /&gt;
[[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML|sound]], [[InterfaceActionsWML|sound_source]], [[ReplayWML|source]], [[EventWML|special_filter]], [[EventWML|special_filter_second]],&lt;br /&gt;
[[InternalActionsWML|split]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],&lt;br /&gt;
[[ThemeWML|status]], [[DirectActionsWML|stone]], [[InternalActionsWML|store_gold]], [[InternalActionsWML|store_locations]],&lt;br /&gt;
[[InternalActionsWML|store_map_dimensions]],&lt;br /&gt;
[[InternalActionsWML|store_starting_location]], [[InternalActionsWML|store_side]], [[InternalActionsWML|store_unit]], [[IntroWML|story]];&lt;br /&gt;
|-&lt;br /&gt;
|''T:'' &lt;br /&gt;
[[AiWML|target]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],&lt;br /&gt;
[[DirectActionsWML|teleport]], [[UnitWML|teleport_anim]],&lt;br /&gt;
terrain([[TerrainWML|define]], [[DirectActionsWML|create]]), [[TerrainGraphicsWML|terrain_graphics]], [[TerrainMaskWML|terrain_mask]], [[ScenarioWML#Test_scenario|test]],&lt;br /&gt;
[[WesCamp|textdomain]], [[ThemeWML|theme]], [[InternalActionsWML|then]],&lt;br /&gt;
[[TerrainGraphicsWML|tile]], [[TimeWML|time]], [[ScenarioWML|time_area]], [[ThemeWML|time_of_day]],&lt;br /&gt;
[[HelpWML|topic]], [[HelpWML|toplevel]], [[SingleUnitWML|trait]], [[ThemeWML|turn]], [[ScenarioWML|tutorial]];&lt;br /&gt;
|-&lt;br /&gt;
|''U:'' &lt;br /&gt;
[[InterfaceActionsWML|unhide_unit]], unit&amp;amp;nbsp;([[UnitWML|define]], [[SingleUnitWML|create]]),&lt;br /&gt;
[[ThemeWML|unit_abilities]], [[ThemeWML|unit_alignment]], [[ThemeWML|unit_description]], [[AnimationWML|unit_filter]], [[ThemeWML|unit_hp]], [[ThemeWML|unit_image]], [[ThemeWML|unit_level]], [[ThemeWML|unit_moves]],&lt;br /&gt;
[[InterfaceActionsWML|unit_overlay]], [[ThemeWML|unit_profile]], [[ThemeWML|unit_status]],&lt;br /&gt;
[[ThemeWML|unit_traits]], [[ThemeWML|unit_type]], [[ThemeWML|unit_weapons]], [[ThemeWML|unit_xp]],&lt;br /&gt;
[[UnitsWML|units]], [[DirectActionsWML|unstone]], [[DirectActionsWML|unstore_unit]], [[ThemeWML|upkeep]];&lt;br /&gt;
|-&lt;br /&gt;
| ''V:'' &lt;br /&gt;
[[InternalActionsWML|variable]], [[VariablesWML|variables]], [[SideWML|village]], [[ThemeWML|villages]];&lt;br /&gt;
|-&lt;br /&gt;
| ''W:'' &lt;br /&gt;
[[InternalActionsWML|while]], [[FilterWML|wml_filter]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=InternalActionsWML&amp;diff=26532</id>
		<title>InternalActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=InternalActionsWML&amp;diff=26532"/>
		<updated>2008-08-25T15:17:33Z</updated>

		<summary type="html">&lt;p&gt;A Guy: /* [event] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== Internal actions ==&lt;br /&gt;
&lt;br /&gt;
Internal actions are actions that WML uses internally that do not directly affect gameplay, for example storing a variable.&lt;br /&gt;
&lt;br /&gt;
The internal actions '''[if]''', '''[while]''', and '''[event]''' describe when/whether sets of actions should be executed.&lt;br /&gt;
&lt;br /&gt;
== [if] ==&lt;br /&gt;
&lt;br /&gt;
Executes different sets of actions based on whether the conditions described in the condition tags are true or not.&lt;br /&gt;
&lt;br /&gt;
Condition tags:&lt;br /&gt;
* '''[have_unit]''': a unit passing this filter with &amp;gt;0 HP exists&lt;br /&gt;
** [[StandardUnitFilter]] (almost... '''Note:''' does not check for matching units in the recall list)&lt;br /&gt;
** '''count''' {{DevFeature}}: if used, the given number of units must match the filter. Accepts a number, range, or comma separated range; default &amp;quot;1-99999&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* '''[have_location]''': a location passing this filter exists &lt;br /&gt;
** [[StandardLocationFilter]]&lt;br /&gt;
** '''count''' {{DevFeature}}: if used, the given number of location must match the filter. Accepts a number, range, or comma separated range; default &amp;quot;1-99999&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* '''[and]''': If an [and] is present, all must evaluate to true in order for the [if] to evaluate true. Useful as a bracket for complex conditions, but not strictly necessary.&lt;br /&gt;
** condition tags as in [if]: if these evaluate to true, [and] evaluates to true.&lt;br /&gt;
&lt;br /&gt;
* '''[or]''': If an [or] is present, one must evaluate to true in order for the [if] to evaluate true. ([[AdvancedConditionalWML|Example]])&lt;br /&gt;
** condition tags as in [if]: if these evaluate to true, '''[or]''' evaluates to true. &lt;br /&gt;
&lt;br /&gt;
* '''[not]''': If a [not] is present, none must evaluate to true in order for the [if] to evaluate true.&lt;br /&gt;
** condition tags as in [if]: if these evaluate to true, [not] evaluates to false.&lt;br /&gt;
&lt;br /&gt;
* '''[and],[or],[not]''': all top-level filters will support in-order conditional handling of and, or, and not. One important thing to remember is, if you have multiple [or]s, you should not wrap your first conditional statement into an [or] block.&lt;br /&gt;
&lt;br /&gt;
* '''[variable]''': tests something about the value of a WML variable (see [[VariablesWML]])&lt;br /&gt;
** '''name''': the name of the variable to test the value of&amp;lt;br&amp;gt;Only one of the following keys should be used for comparing the value of the variable to another value:&lt;br /&gt;
** '''equals''': $name is equal (string wise) to this&lt;br /&gt;
** '''not_equals''': $name is not equal to this&lt;br /&gt;
** '''greater_than''': $name is numerically greater than this&lt;br /&gt;
** '''less_than''': $name is less than this&lt;br /&gt;
** '''greater_than_equal_to''': $name is not less than this&lt;br /&gt;
** '''less_than_equal_to''': $name is not greater than this&lt;br /&gt;
** '''numerical_not_equals''': $name is greater than or less than this&lt;br /&gt;
** '''numerical_equals''': $name is not greater than or less than this&lt;br /&gt;
** '''boolean_equals''': $name has the same boolean value (e.g. off, false, 0, no)&lt;br /&gt;
** '''contains''': $name contains this string&lt;br /&gt;
** {{DevFeature}} '''boolean_not_equals''': $name has not the same boolean value. Strictly a syntactic shortcut for the following syntax that served its absence in 1.4:&lt;br /&gt;
  [not]&lt;br /&gt;
    [variable]&lt;br /&gt;
      name=...&lt;br /&gt;
      boolean_equals=...&lt;br /&gt;
    [/variable]&lt;br /&gt;
  [/not]&lt;br /&gt;
&lt;br /&gt;
After condition tags:&lt;br /&gt;
* '''[then]''': contains a set of action tags which should be executed if all conditions are true, or all conditions in any single [or] are true&lt;br /&gt;
* '''[else]''': contains a set of action tags which should be executed if any condition is false, and all [or] tags are false&lt;br /&gt;
&lt;br /&gt;
== [switch] {{DevFeature}} ==&lt;br /&gt;
&lt;br /&gt;
Executes different sets of action based on the value of a variable.&lt;br /&gt;
  [switch]&lt;br /&gt;
     variable=foo&lt;br /&gt;
     [case]&lt;br /&gt;
        value=&amp;quot;A&amp;quot;&lt;br /&gt;
        ... WML if foo=A ...&lt;br /&gt;
     [/case]&lt;br /&gt;
     [case]&lt;br /&gt;
        value=&amp;quot;B&amp;quot;&lt;br /&gt;
        ... WML if foo=B ...&lt;br /&gt;
     [/case]&lt;br /&gt;
     [else]&lt;br /&gt;
        ... WML if not foo=A nor foo=B ...&lt;br /&gt;
     [/else]&lt;br /&gt;
  [/switch]&lt;br /&gt;
&lt;br /&gt;
* '''variable''': name of the variable to check.&lt;br /&gt;
* '''[case]''': Case block. Contains:&lt;br /&gt;
** '''value''': value to test the variable against.&lt;br /&gt;
** the action WML to execute if the variable matches the value (rest of the block).&lt;br /&gt;
* '''[else]''': Block of action WML to execute if no '''[case]''' block matches.&lt;br /&gt;
&lt;br /&gt;
== [while] ==&lt;br /&gt;
&lt;br /&gt;
Executes commands if all conditions are true.&lt;br /&gt;
Continues to execute them until a condition is not true.&lt;br /&gt;
&lt;br /&gt;
Executes a maximum of 1024 iterations per invocation.&lt;br /&gt;
Condition tags are the same as for [if]&lt;br /&gt;
&lt;br /&gt;
After condition tags:&lt;br /&gt;
* '''[do]''': contains actions that should be executed repeatedly until some condition is false.&lt;br /&gt;
&lt;br /&gt;
The '''[while]''' tag is useful for iterating over an array.&lt;br /&gt;
An array is a list of values.&lt;br /&gt;
The ''number''th value in the array '''array''' is stored in the WML variable '''''array''[number]'''.&lt;br /&gt;
Note that if '''number''' is the value of the variable '''variable''',&lt;br /&gt;
the expression '''$''array''[$variable]''' will return the ''number''th value in ''array''.&lt;br /&gt;
The macros 'FOREACH' and 'NEXT' ([[UtilWML]]) can be used to iterate over an array;&lt;br /&gt;
i.e. run a set of actions once per element of the array.&lt;br /&gt;
&lt;br /&gt;
=== {FOREACH} ===&lt;br /&gt;
If you wish to use a &amp;quot;for-each&amp;quot; iteration format (useful for example when you want to do an iteration for each row in a table) you can use the {{LinkMacro|FOREACH}} and {{LinkMacro|NEXT}} predefined macros.&lt;br /&gt;
&lt;br /&gt;
=== {REPEAT} ===&lt;br /&gt;
You can use the {{LinkMacro|REPEAT}} macro to perform a quick iteration for a number of times you specify.&lt;br /&gt;
&lt;br /&gt;
== [event] ==&lt;br /&gt;
&lt;br /&gt;
This adds a new event to the scenario.&lt;br /&gt;
The event is in the normal format for an '''[event]''' tag (See [[EventWML]]).&lt;br /&gt;
This is useful if you want an event that can only be triggered when a prior event is fulfilled&lt;br /&gt;
&lt;br /&gt;
These tags describe actions that affect the values of WML variables&lt;br /&gt;
(see [[VariablesWML]] for information on WML variables,&lt;br /&gt;
and [[UtilWML]] for convenient macro shortcuts for some of these):&lt;br /&gt;
* '''[set_variable]''': manipulates a WML variable. {{Note:Predefined Macro|VARIABLE}} &lt;br /&gt;
** '''name''': the name of the variable to manipulate&lt;br /&gt;
** '''value''': set the variable to the given value (can be numeric or string). This only interprets dollars signs if it is the very first character, and then the entire value must be a simple variable name. (in 1.3.2, has the same effect as format. Use literal for no substitution)&lt;br /&gt;
** '''literal''': set the variable to the given value (can be numeric or string). This does not interpret any dollars signs.&lt;br /&gt;
** '''format''': set the variable to the given value. Interprets the dollar sign to a higher degree than most actions. (see [[VariablesWML]])&lt;br /&gt;
** '''to_variable''': Fully processes its value as in ''format'', and then gets the variable with that name.&lt;br /&gt;
** '''add''': add the given amount to the variable. To subtract, add a negative number.&lt;br /&gt;
** '''multiply''': multiply the variable by the given number. To divide, multiply by the inverse eg: 4/2 = 4 * 1/2 = 4 * 0.5. To negate, multiply by -1. The result is an integer.&lt;br /&gt;
** '''divide''': divide the variable by the given number. The result is an integer.&lt;br /&gt;
** '''modulo''': returns the remainder of an integer division. Both variables need to be an integer, the result is also an integer. eg 5 % 2 = 1.&lt;br /&gt;
** '''random''': the variable will be randomly set.&amp;lt;br&amp;gt;You may provide a comma separated list of possibilities, e.g. 'random=Bob,Bill,Bella'.&amp;lt;br&amp;gt;You may provide a range of numbers (integers), e.g. 'random=3..5'.&amp;lt;br&amp;gt;You may combine these, e.g. 'random=100,1..9', in which case there would be 1/10th chance of getting 100, just like for each of 1 to 9. Dollars signs are only normally interpreted here, so it is harder to have a dynamically determined range. You would need to create the random-string with ''format''.&lt;br /&gt;
** '''rand''': does the same as random, but has better MP support. See [[BuildingMultiplayerExamples]] for more info on the MP case. '''It is highly recommended that you use this feature for randomization.'''&lt;br /&gt;
** '''time=stamp''': Retrieves a timestamp in milliseconds since wesnoth was started, can be used as timing aid. Don't try to use this as random value in MP since it will cause an OOS.&lt;br /&gt;
** {{DevFeature}} '''string_length''': Retrieves the length in characters of the string passed as this attribute's value; such string is parsed and variable substitution applied automatically (see [[VariablesWML]] for details).&lt;br /&gt;
** {{DevFeature}} '''[join]''' joins an array of strings to a textual list&lt;br /&gt;
***variable: name of the array&lt;br /&gt;
***key: array[$i].key to look for the strings&lt;br /&gt;
***separator: separator to connect the elements&lt;br /&gt;
***remove_empty: wether to ignore empty elements&lt;br /&gt;
&lt;br /&gt;
* {{DevFeature}} '''[set_variables]''': manipulates a WML array&lt;br /&gt;
** '''name''': the name of the container to manipulate&lt;br /&gt;
** '''mode''': one of the following values:&lt;br /&gt;
***replace: will clean the array '''name''' and replace it with given data&lt;br /&gt;
***append: will append given data to the current array&lt;br /&gt;
***merge: will merge in the given data into '''name'''&lt;br /&gt;
** '''to_variable''': data will be set to the given array&lt;br /&gt;
** '''[value]''': the WML inside the [value] tags will be stored in data, variables will be interpolated directly, use $| in order to escape the $ sign, you can store arrays of WML by supplying multiple [value] tags, example:&lt;br /&gt;
 [set_variables]&lt;br /&gt;
  name=arr&lt;br /&gt;
  mode=replace&lt;br /&gt;
  [value]&lt;br /&gt;
   foo=bar&lt;br /&gt;
  [/value]&lt;br /&gt;
  [value]&lt;br /&gt;
   foo=more&lt;br /&gt;
  [/value]&lt;br /&gt;
 [/set_variables]&lt;br /&gt;
 {DEBUG_MSG $arr[0].foo}&lt;br /&gt;
 {DEBUG_MSG $arr[1].foo}&lt;br /&gt;
 =&amp;gt;bar; more&lt;br /&gt;
** '''[literal]''': same as '''[value]''', but variables will not be substituted, '''[literal]''' and '''[value]''' can not be used in the same [set_variables] tag, i.e. you can not create arrays by piling a mix of '''[value]''' and '''[literal]''' tags&lt;br /&gt;
**'''[split]''' splits a textual list into an array which will then be set to data&lt;br /&gt;
***list: textual list to split&lt;br /&gt;
***key: array[$i].key to put the elements in&lt;br /&gt;
***separator: separator to separate the elements&lt;br /&gt;
***remove_empty: wether to ignore empty elements&lt;br /&gt;
&lt;br /&gt;
* {{DevFeature}} '''[fire_event]''': trigger a WML event&lt;br /&gt;
** '''name''': the name of event to trigger&lt;br /&gt;
** '''[primary_unit]''': primary unit for the event (usually the attacker) (optional)&lt;br /&gt;
** '''[secondary_unit]''': secondary unit for the event (usually the defender) (optional)&lt;br /&gt;
** both tags have some keys which are optional :&lt;br /&gt;
*** '''x,y''': location of this unit&lt;br /&gt;
*** '''weapon''': weapon that this unit was supposed to use for this event&lt;br /&gt;
&lt;br /&gt;
* '''[store_unit]''': stores details about units into game variables.&amp;lt;br&amp;gt;Common usage is to manipulate a unit by using [store_unit] to store it into a variable, followed by manipulation of the variable, and then [unstore_unit] to re-create the unit with the modified variables.&amp;lt;br&amp;gt;Note: stored units also exist on the field, and modifying the stored variable will not automatically change the stats of the units. You need to use [unstore_unit]. See also [unstore_unit], [[DirectActionsWML]], and '''FOREACH''', [[UtilWML]]&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] all units matching this filter will be stored. If there are multiple units, they will be stored into an array of variables.&lt;br /&gt;
** '''variable''': the name of the variable into which to store the unit(s)&lt;br /&gt;
** '''mode''': defaults to ''always_clear'', which clears the variable, whether or not a match is found. If mode is set to ''replace'', the variable will only be cleared if a match is found. If mode is set to ''append'', the variable will not be cleared.&lt;br /&gt;
** '''kill''': if 'yes' the units that are stored will be removed from play. This is useful for instance to remove access to a player's recall list, with the intent to restore the recall list later.&lt;br /&gt;
:When a unit is stored, the following values may be manipulated with '''[set_variable]'''&lt;br /&gt;
:* description&lt;br /&gt;
:* experience&lt;br /&gt;
:* facing&lt;br /&gt;
:* gender&lt;br /&gt;
:* canrecruit&lt;br /&gt;
:* overlays&lt;br /&gt;
:* goto_x&lt;br /&gt;
:* goto_y&lt;br /&gt;
:* hitpoints&lt;br /&gt;
:* moves&lt;br /&gt;
:* resting&lt;br /&gt;
:* side&lt;br /&gt;
:* type&lt;br /&gt;
:* unrenamable&lt;br /&gt;
:* upkeep&lt;br /&gt;
:* user_description&lt;br /&gt;
:* x&lt;br /&gt;
:* y&lt;br /&gt;
:* [variables]&lt;br /&gt;
:* [status]&lt;br /&gt;
:* [modifications]&lt;br /&gt;
Variables, status, and modifications are children of the stored unit variable.  Example:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
 name=unit_store.status.poisoned&lt;br /&gt;
 value=yes&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
&lt;br /&gt;
:All keys and tags in the unit definition may be manipulated, including some others.  Here is a sample list.  If you have a doubt about what keys are valid or what the valid value range is for each key, code a [store_unit] event, save the game, and examine what keys are in the file.&lt;br /&gt;
:* advanceto&lt;br /&gt;
:* alignment&lt;br /&gt;
:* alpha&lt;br /&gt;
:* attacks_left&lt;br /&gt;
:* canrecruit&lt;br /&gt;
:* controller&lt;br /&gt;
:* cost&lt;br /&gt;
:* description&lt;br /&gt;
:* experience&lt;br /&gt;
:* facing&lt;br /&gt;
:* flying&lt;br /&gt;
:* fog&lt;br /&gt;
:* gender&lt;br /&gt;
:* get_hit_sound&lt;br /&gt;
:* gold&lt;br /&gt;
:* goto_x&lt;br /&gt;
:* goto_y&lt;br /&gt;
:* hitpoints&lt;br /&gt;
:* id&lt;br /&gt;
:* image&lt;br /&gt;
:* image_defensive&lt;br /&gt;
:* income&lt;br /&gt;
:* language_name (same as the name key in the unit config)&lt;br /&gt;
:* level&lt;br /&gt;
:* max_attacks&lt;br /&gt;
:* max_experience&lt;br /&gt;
:* max_hitpoints&lt;br /&gt;
:* max_moves&lt;br /&gt;
:* movement&lt;br /&gt;
:* movement_type&lt;br /&gt;
:* moves&lt;br /&gt;
:* race&lt;br /&gt;
:* resting&lt;br /&gt;
:* shroud&lt;br /&gt;
:* side&lt;br /&gt;
:* type&lt;br /&gt;
:* unit_description&lt;br /&gt;
:* unrenamable&lt;br /&gt;
:* usage&lt;br /&gt;
:* value&lt;br /&gt;
:* x&lt;br /&gt;
:* y&lt;br /&gt;
:* zoc&lt;br /&gt;
:* [advancement]&lt;br /&gt;
:* [/advancement]&lt;br /&gt;
:* [movement_costs]&lt;br /&gt;
:* [/movement_costs]&lt;br /&gt;
:* [defense]&lt;br /&gt;
:* [/defense]&lt;br /&gt;
:* [resistance]&lt;br /&gt;
:* [/resistance]&lt;br /&gt;
:* [variables]&lt;br /&gt;
:* [/variables]&lt;br /&gt;
:* [status]&lt;br /&gt;
:* [/status]&lt;br /&gt;
:* [attack]&lt;br /&gt;
:* [/attack]&lt;br /&gt;
:* [modifications_description]&lt;br /&gt;
:* [/modifications_description]&lt;br /&gt;
:* [modifications]&lt;br /&gt;
:* [/modifications]&lt;br /&gt;
&lt;br /&gt;
* '''[store_starting_location]''': Stores the starting location of a side's leader in a variable. The variable is a composite type which will have members 'x', 'y', 'terrain' (the terrain type for a starting location is always 'K' unless it has been changed) and {{DevFeature}} 'owner_side' (villages only)&lt;br /&gt;
** '''side''': the side whose starting location is to be stored&lt;br /&gt;
** '''variable''': (default='location'): the name of the variable to store the location in&lt;br /&gt;
* '''[store_locations]''': Stores a series of locations that pass certain criteria into an array. Each member of the array has members 'x' and 'y' (the position) and 'terrain' (the terrain type) and {{DevFeature}} 'owner_side' (villages only).&lt;br /&gt;
** [[StandardLocationFilter]]: a location or location range which specifies the locations to store. You must specify this or no locations will be stored.&lt;br /&gt;
** '''variable''': the name of the variable (array) into which to store the locations&lt;br /&gt;
** '''terrain''': a comma-sperated list of terrain codes. (See [[TerrainCodesWML]] for possible values.) If present, locations will only be chosen if the code for the terrain type of that location is listed.&lt;br /&gt;
** '''radius''': if present, any locations which are within '''radius''' hexes of the location filter will also be stored&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] only locations with units on them that match the filter will be stored. Use a blank filter to only store locations with units.&lt;br /&gt;
* '''[store_villages]''': Stores a series of locations of villages that pass certain criteria into an array. Each member of the array has members 'x' and 'y' (the position) and 'terrain' (the terrain type) and {{DevFeature}} 'owner_side'.&lt;br /&gt;
** '''owner_side''': a side number. If present, only villages owned by this side will be choosen. If owner_side=0, store the unowned villages. &lt;br /&gt;
** '''variable''': the name of the variable (array) into which to store the locations&lt;br /&gt;
** '''terrain''': a series of terrain characters. (See [[TerrainLettersWML]] for possible values.) If present, villages will only be chosen if the terrain code of the terrain type of that location is listed.  You may give a comma separated list of terrains.&lt;br /&gt;
* '''[store_gold]''': Stores a side's gold into a variable.&lt;br /&gt;
** '''side''': (default=1) the side for which the gold should be stored&lt;br /&gt;
** '''variable''': (default='gold') the name of the variable to store the gold in&lt;br /&gt;
* '''[store_side]''': stores information about a certain side in a variable. The variable will contain the member variables 'name', 'team_name', 'gold' and 'income', 'fog', 'shroud', 'user_team_name', 'colour', 'controller', 'village_gold' and 'recruit'.)&lt;br /&gt;
** '''side''': the side whose information should be stored&lt;br /&gt;
** '''variable''': the name of the variable to store the information in&lt;br /&gt;
* '''[clear_variable]''': This will delete the given variable or array. This is good to use to clean up the set of variables -- e.g. a well-behaved scenario will delete any variables that shouldn't be kept for the next scenario before the end of the scenario.&amp;lt;br&amp;gt; Tags and variables of stored units can also be cleared, meaning that [trait]s and [object]s, for example, can be removed.&lt;br /&gt;
** '''name''': the name of the variable to clear.&lt;br /&gt;
* '''[role]''': tries to find a unit to assign a role to.&amp;lt;br&amp;gt;This is useful if you want to choose a non-major character to say some things during the game. Once a role is assigned, you can use '''role=''' in a unit filter to identify the unit with that role (See [[FilterWML]]).&amp;lt;br&amp;gt;However, there is no guarantee that roles will ever be assigned. You can use '''[have_unit]''' (see [if]) to see whether a role was assigned. This tag uses a [[StandardUnitFilter]] with the modification to order the search by type, mark only the first unit found with the role, and the role attribute is not used in the search. If for some reason you want to search for units that have or don't have existing roles, you can use one or more [not] filters. The will check recall lists in addition to units on the map. In normal use, you will probably want to include a ''side'' attribute to force the unit to be on a particular side.&lt;br /&gt;
** '''role''': the value to store as the unit's role. This role is not used in the [[StandardUnitFilter]] when doing the search for the unit to assign this role to.&lt;br /&gt;
** '''type''': a comma-separated list of possible types the unit can be. If any types are given, then units will be searched by type in the order listed. If no type is given, then no particular order with respect to type is guaranteed.&lt;br /&gt;
* {{DevFeature}} '''[store_map_dimensions]''': Stores the map dimensions in a variable.&lt;br /&gt;
** '''variable''': the name of the variable where the values will be saved into. If it is skipped, a variable 'map_size' is used, and its contents overridden, if they existed already. The result is a container variable, with members ''width'' and ''height''.&lt;br /&gt;
* {{DevFeature}} '''[insert_tag]''': inserts a variable as WML&lt;br /&gt;
**'''name''': the [&amp;quot;name&amp;quot;] to be given to the tag&lt;br /&gt;
**'''variable''': name of the variable to be inserted&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[VariablesWML]]&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=InternalActionsWML&amp;diff=26530</id>
		<title>InternalActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=InternalActionsWML&amp;diff=26530"/>
		<updated>2008-08-25T02:03:30Z</updated>

		<summary type="html">&lt;p&gt;A Guy: /* [event] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== Internal actions ==&lt;br /&gt;
&lt;br /&gt;
Internal actions are actions that WML uses internally that do not directly affect gameplay, for example storing a variable.&lt;br /&gt;
&lt;br /&gt;
The internal actions '''[if]''', '''[while]''', and '''[event]''' describe when/whether sets of actions should be executed.&lt;br /&gt;
&lt;br /&gt;
== [if] ==&lt;br /&gt;
&lt;br /&gt;
Executes different sets of actions based on whether the conditions described in the condition tags are true or not.&lt;br /&gt;
&lt;br /&gt;
Condition tags:&lt;br /&gt;
* '''[have_unit]''': a unit passing this filter with &amp;gt;0 HP exists&lt;br /&gt;
** [[StandardUnitFilter]] (almost... '''Note:''' does not check for matching units in the recall list)&lt;br /&gt;
** '''count''' {{DevFeature}}: if used, the given number of units must match the filter. Accepts a number, range, or comma separated range; default &amp;quot;1-99999&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* '''[have_location]''': a location passing this filter exists &lt;br /&gt;
** [[StandardLocationFilter]]&lt;br /&gt;
** '''count''' {{DevFeature}}: if used, the given number of location must match the filter. Accepts a number, range, or comma separated range; default &amp;quot;1-99999&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* '''[and]''': If an [and] is present, all must evaluate to true in order for the [if] to evaluate true. Useful as a bracket for complex conditions, but not strictly necessary.&lt;br /&gt;
** condition tags as in [if]: if these evaluate to true, [and] evaluates to true.&lt;br /&gt;
&lt;br /&gt;
* '''[or]''': If an [or] is present, one must evaluate to true in order for the [if] to evaluate true. ([[AdvancedConditionalWML|Example]])&lt;br /&gt;
** condition tags as in [if]: if these evaluate to true, '''[or]''' evaluates to true. &lt;br /&gt;
&lt;br /&gt;
* '''[not]''': If a [not] is present, none must evaluate to true in order for the [if] to evaluate true.&lt;br /&gt;
** condition tags as in [if]: if these evaluate to true, [not] evaluates to false.&lt;br /&gt;
&lt;br /&gt;
* '''[and],[or],[not]''': all top-level filters will support in-order conditional handling of and, or, and not. One important thing to remember is, if you have multiple [or]s, you should not wrap your first conditional statement into an [or] block.&lt;br /&gt;
&lt;br /&gt;
* '''[variable]''': tests something about the value of a WML variable (see [[VariablesWML]])&lt;br /&gt;
** '''name''': the name of the variable to test the value of&amp;lt;br&amp;gt;Only one of the following keys should be used for comparing the value of the variable to another value:&lt;br /&gt;
** '''equals''': $name is equal (string wise) to this&lt;br /&gt;
** '''not_equals''': $name is not equal to this&lt;br /&gt;
** '''greater_than''': $name is numerically greater than this&lt;br /&gt;
** '''less_than''': $name is less than this&lt;br /&gt;
** '''greater_than_equal_to''': $name is not less than this&lt;br /&gt;
** '''less_than_equal_to''': $name is not greater than this&lt;br /&gt;
** '''numerical_not_equals''': $name is greater than or less than this&lt;br /&gt;
** '''numerical_equals''': $name is not greater than or less than this&lt;br /&gt;
** '''boolean_equals''': $name has the same boolean value (e.g. off, false, 0, no)&lt;br /&gt;
** '''contains''': $name contains this string&lt;br /&gt;
** {{DevFeature}} '''boolean_not_equals''': $name has not the same boolean value. Strictly a syntactic shortcut for the following syntax that served its absence in 1.4:&lt;br /&gt;
  [not]&lt;br /&gt;
    [variable]&lt;br /&gt;
      name=...&lt;br /&gt;
      boolean_equals=...&lt;br /&gt;
    [/variable]&lt;br /&gt;
  [/not]&lt;br /&gt;
&lt;br /&gt;
After condition tags:&lt;br /&gt;
* '''[then]''': contains a set of action tags which should be executed if all conditions are true, or all conditions in any single [or] are true&lt;br /&gt;
* '''[else]''': contains a set of action tags which should be executed if any condition is false, and all [or] tags are false&lt;br /&gt;
&lt;br /&gt;
== [switch] {{DevFeature}} ==&lt;br /&gt;
&lt;br /&gt;
Executes different sets of action based on the value of a variable.&lt;br /&gt;
  [switch]&lt;br /&gt;
     variable=foo&lt;br /&gt;
     [case]&lt;br /&gt;
        value=&amp;quot;A&amp;quot;&lt;br /&gt;
        ... WML if foo=A ...&lt;br /&gt;
     [/case]&lt;br /&gt;
     [case]&lt;br /&gt;
        value=&amp;quot;B&amp;quot;&lt;br /&gt;
        ... WML if foo=B ...&lt;br /&gt;
     [/case]&lt;br /&gt;
     [else]&lt;br /&gt;
        ... WML if not foo=A nor foo=B ...&lt;br /&gt;
     [/else]&lt;br /&gt;
  [/switch]&lt;br /&gt;
&lt;br /&gt;
* '''variable''': name of the variable to check.&lt;br /&gt;
* '''[case]''': Case block. Contains:&lt;br /&gt;
** '''value''': value to test the variable against.&lt;br /&gt;
** the action WML to execute if the variable matches the value (rest of the block).&lt;br /&gt;
* '''[else]''': Block of action WML to execute if no '''[case]''' block matches.&lt;br /&gt;
&lt;br /&gt;
== [while] ==&lt;br /&gt;
&lt;br /&gt;
Executes commands if all conditions are true.&lt;br /&gt;
Continues to execute them until a condition is not true.&lt;br /&gt;
&lt;br /&gt;
Executes a maximum of 1024 iterations per invocation.&lt;br /&gt;
Condition tags are the same as for [if]&lt;br /&gt;
&lt;br /&gt;
After condition tags:&lt;br /&gt;
* '''[do]''': contains actions that should be executed repeatedly until some condition is false.&lt;br /&gt;
&lt;br /&gt;
The '''[while]''' tag is useful for iterating over an array.&lt;br /&gt;
An array is a list of values.&lt;br /&gt;
The ''number''th value in the array '''array''' is stored in the WML variable '''''array''[number]'''.&lt;br /&gt;
Note that if '''number''' is the value of the variable '''variable''',&lt;br /&gt;
the expression '''$''array''[$variable]''' will return the ''number''th value in ''array''.&lt;br /&gt;
The macros 'FOREACH' and 'NEXT' ([[UtilWML]]) can be used to iterate over an array;&lt;br /&gt;
i.e. run a set of actions once per element of the array.&lt;br /&gt;
&lt;br /&gt;
=== {FOREACH} ===&lt;br /&gt;
If you wish to use a &amp;quot;for-each&amp;quot; iteration format (useful for example when you want to do an iteration for each row in a table) you can use the {{LinkMacro|FOREACH}} and {{LinkMacro|NEXT}} predefined macros.&lt;br /&gt;
&lt;br /&gt;
=== {REPEAT} ===&lt;br /&gt;
You can use the {{LinkMacro|REPEAT}} macro to perform a quick iteration for a number of times you specify.&lt;br /&gt;
&lt;br /&gt;
== [event] ==&lt;br /&gt;
&lt;br /&gt;
This adds a new event to the scenario.&lt;br /&gt;
The event is in the normal format for an '''[event]''' tag (See [[EventWML]]).&lt;br /&gt;
This is useful if you want an event that can only be triggered when a prior event is fulfilled&lt;br /&gt;
&lt;br /&gt;
These tags describe actions that affect the values of WML variables&lt;br /&gt;
(see [[VariablesWML]] for information on WML variables,&lt;br /&gt;
and [[UtilWML]] for convenient macro shortcuts for some of these):&lt;br /&gt;
* '''[set_variable]''': manipulates a WML variable. {{Note:Predefined Macro|VARIABLE}} &lt;br /&gt;
** '''name''': the name of the variable to manipulate&lt;br /&gt;
** '''value''': set the variable to the given value (can be numeric or string). This only interprets dollars signs if it is the very first character, and then the entire value must be a simple variable name. (in 1.3.2, has the same effect as format. Use literal for no substitution)&lt;br /&gt;
** '''literal''': set the variable to the given value (can be numeric or string). This does not interpret any dollars signs.&lt;br /&gt;
** '''format''': set the variable to the given value. Interprets the dollar sign to a higher degree than most actions. (see [[VariablesWML]])&lt;br /&gt;
** '''to_variable''': Fully processes its value as in ''format'', and then gets the variable with that name.&lt;br /&gt;
** '''add''': add the given amount to the variable. To subtract, add a negative number.&lt;br /&gt;
** '''multiply''': multiply the variable by the given number. To divide, multiply by the inverse eg: 4/2 = 4 * 1/2 = 4 * 0.5. To negate, multiply by -1. The result is an integer.&lt;br /&gt;
** '''divide''': divide the variable by the given number. The result is an integer.&lt;br /&gt;
** '''modulo''': returns the remainder of an integer division. Both variables need to be an integer, the result is also an integer. eg 5 % 2 = 1.&lt;br /&gt;
** '''random''': the variable will be randomly set.&amp;lt;br&amp;gt;You may provide a comma separated list of possibilities, e.g. 'random=Bob,Bill,Bella'.&amp;lt;br&amp;gt;You may provide a range of numbers (integers), e.g. 'random=3..5'.&amp;lt;br&amp;gt;You may combine these, e.g. 'random=100,1..9', in which case there would be 1/10th chance of getting 100, just like for each of 1 to 9. Dollars signs are only normally interpreted here, so it is harder to have a dynamically determined range. You would need to create the random-string with ''format''.&lt;br /&gt;
** '''rand''': does the same as random, but has better MP support. See [[BuildingMultiplayerExamples]] for more info on the MP case. '''It is highly recommended that you use this feature for randomization.'''&lt;br /&gt;
** '''time=stamp''': Retrieves a timestamp in milliseconds since wesnoth was started, can be used as timing aid. Don't try to use this as random value in MP since it will cause an OOS.&lt;br /&gt;
** {{DevFeature}} '''string_length''': Retrieves the length in characters of the string passed as this attribute's value; such string is parsed and variable substitution applied automatically (see [[VariablesWML]] for details).&lt;br /&gt;
** {{DevFeature}} '''[join]''' joins an array of strings to a textual list&lt;br /&gt;
***variable: name of the array&lt;br /&gt;
***key: array[$i].key to look for the strings&lt;br /&gt;
***separator: separator to connect the elements&lt;br /&gt;
***remove_empty: wether to ignore empty elements&lt;br /&gt;
&lt;br /&gt;
* {{DevFeature}} '''[set_variables]''': manipulates a WML array&lt;br /&gt;
** '''name''': the name of the container to manipulate&lt;br /&gt;
** '''mode''': one of the following values:&lt;br /&gt;
***replace: will clean the array '''name''' and replace it with given data&lt;br /&gt;
***append: will append given data to the current array&lt;br /&gt;
***merge: will merge in the given data into '''name'''&lt;br /&gt;
** '''to_variable''': data will be set to the given array&lt;br /&gt;
** '''[value]''': the WML inside the [value] tags will be stored in data, variables will be interpolated directly, use $| in order to escape the $ sign, you can store arrays of WML by supplying multiple [value] tags, example:&lt;br /&gt;
 [set_variables]&lt;br /&gt;
  name=arr&lt;br /&gt;
  mode=replace&lt;br /&gt;
  [value]&lt;br /&gt;
   foo=bar&lt;br /&gt;
  [/value]&lt;br /&gt;
  [value]&lt;br /&gt;
   foo=more&lt;br /&gt;
  [/value]&lt;br /&gt;
 [/set_variables]&lt;br /&gt;
 {DEBUG_MSG $arr[0].foo}&lt;br /&gt;
 {DEBUG_MSG $arr[1].foo}&lt;br /&gt;
 =&amp;gt;bar; more&lt;br /&gt;
** '''[literal]''': same as '''[value]''', but variables will not be substituted, '''[literal]''' and '''[value]''' can not be used in the same [set_variables] tag, i.e. you can not create arrays by piling a mix of '''[value]''' and '''[literal]''' tags&lt;br /&gt;
**'''[split]''' splits a textual list into an array which will then be set to data&lt;br /&gt;
***list: textual list to split&lt;br /&gt;
***key: array[$i].key to put the elements in&lt;br /&gt;
***separator: separator to separate the elements&lt;br /&gt;
***remove_empty: wether to ignore empty elements&lt;br /&gt;
&lt;br /&gt;
* {{DevFeature}} '''[fire_event]''': trigger a WML event&lt;br /&gt;
** '''name''': the name of event to trigger&lt;br /&gt;
** '''[primary_unit]''': primary unit for the event (usually the attacker) (optional)&lt;br /&gt;
** '''[secondary_unit]''': secondary unit for the event (usually the defender) (optional)&lt;br /&gt;
** both tags have some keys which are optional :&lt;br /&gt;
*** '''x,y''': location of this unit&lt;br /&gt;
*** '''weapon''': weapon that this unit was supposed to use for this event&lt;br /&gt;
&lt;br /&gt;
* '''[store_unit]''': stores details about units into game variables.&amp;lt;br&amp;gt;Common usage is to manipulate a unit by using [store_unit] to store it into a variable, followed by manipulation of the variable, and then [unstore_unit] to re-create the unit with the modified variables.&amp;lt;br&amp;gt;Note: stored units also exist on the field, and modifying the stored variable will not automatically change the stats of the units. You need to use [unstore_unit]. See also [unstore_unit], [[DirectActionsWML]], and '''FOREACH''', [[UtilWML]]&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] all units matching this filter will be stored. If there are multiple units, they will be stored into an array of variables.&lt;br /&gt;
** '''variable''': the name of the variable into which to store the unit(s)&lt;br /&gt;
** '''mode''': defaults to ''always_clear'', which clears the variable, whether or not a match is found. If mode is set to ''replace'', the variable will only be cleared if a match is found. If mode is set to ''append'', the variable will not be cleared.&lt;br /&gt;
** '''kill''': if 'yes' the units that are stored will be removed from play. This is useful for instance to remove access to a player's recall list, with the intent to restore the recall list later.&lt;br /&gt;
:When a unit is stored, the following values may be manipulated with '''[set_variable]'''&lt;br /&gt;
:* description&lt;br /&gt;
:* experience&lt;br /&gt;
:* facing&lt;br /&gt;
:* gender&lt;br /&gt;
:* canrecruit&lt;br /&gt;
:* overlays&lt;br /&gt;
:* goto_x&lt;br /&gt;
:* goto_y&lt;br /&gt;
:* hitpoints&lt;br /&gt;
:* moves&lt;br /&gt;
:* resting&lt;br /&gt;
:* side&lt;br /&gt;
:* type&lt;br /&gt;
:* unrenamable&lt;br /&gt;
:* upkeep&lt;br /&gt;
:* user_description&lt;br /&gt;
:* x&lt;br /&gt;
:* y&lt;br /&gt;
:* [variables]&lt;br /&gt;
:* [status]&lt;br /&gt;
:* [modifications]&lt;br /&gt;
Variables, status, and modifications are children of the stored unit variable.  Example:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
 name=unit_store.status.poisoned&lt;br /&gt;
 value=yes&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
&lt;br /&gt;
:All keys and tags in the unit definition may be manipulated, including some others.  Here is a sample list.  If you have a doubt about what keys are valid or what the valid value range is for each key, code a [store_unit] event, save the game, and examine what keys are in the file.&lt;br /&gt;
:* advanceto&lt;br /&gt;
:* alignment&lt;br /&gt;
:* alpha&lt;br /&gt;
:* attacks_left&lt;br /&gt;
:* canrecruit&lt;br /&gt;
:* controller&lt;br /&gt;
:* cost&lt;br /&gt;
:* description&lt;br /&gt;
:* experience&lt;br /&gt;
:* facing&lt;br /&gt;
:* flying&lt;br /&gt;
:* fog&lt;br /&gt;
:* gender&lt;br /&gt;
:* get_hit_sound&lt;br /&gt;
:* gold&lt;br /&gt;
:* goto_x&lt;br /&gt;
:* goto_y&lt;br /&gt;
:* hitpoints&lt;br /&gt;
:* id&lt;br /&gt;
:* image&lt;br /&gt;
:* image_defensive&lt;br /&gt;
:* income&lt;br /&gt;
:* language_name (same as the name key in the unit config)&lt;br /&gt;
:* level&lt;br /&gt;
:* max_attacks&lt;br /&gt;
:* max_experience&lt;br /&gt;
:* max_hitpoints&lt;br /&gt;
:* max_moves&lt;br /&gt;
:* movement&lt;br /&gt;
:* movement_type&lt;br /&gt;
:* moves&lt;br /&gt;
:* race&lt;br /&gt;
:* resting&lt;br /&gt;
:* shroud&lt;br /&gt;
:* side&lt;br /&gt;
:* type&lt;br /&gt;
:* unit_description&lt;br /&gt;
:* unrenamable&lt;br /&gt;
:* usage&lt;br /&gt;
:* value&lt;br /&gt;
:* x&lt;br /&gt;
:* y&lt;br /&gt;
:* zoc&lt;br /&gt;
:* [advancement]&lt;br /&gt;
:* [/advancement]&lt;br /&gt;
:* [movement_costs]&lt;br /&gt;
:* [/movement_costs]&lt;br /&gt;
:* [defense]&lt;br /&gt;
:* [/defense]&lt;br /&gt;
:* [resistance]&lt;br /&gt;
:* [/resistance]&lt;br /&gt;
:* [variables]&lt;br /&gt;
:* [/variables]&lt;br /&gt;
:* [status]&lt;br /&gt;
:* [/status]&lt;br /&gt;
:* [attack]&lt;br /&gt;
:* [/attack]&lt;br /&gt;
:* [modifications_description]&lt;br /&gt;
:* [/modifications_description]&lt;br /&gt;
:* [modifications]&lt;br /&gt;
:* [/modifications]&lt;br /&gt;
&lt;br /&gt;
* '''[store_starting_location]''': Stores the starting location of a side's leader in a variable. The variable is a composite type which will have members 'x', 'y', 'terrain' (the terrain type for a starting location is always 'K' unless it has been changed) and {{DevFeature}} 'owner_side' (villages only)&lt;br /&gt;
** '''side''': the side whose starting location is to be stored&lt;br /&gt;
** '''variable''': (default='location'): the name of the variable to store the location in&lt;br /&gt;
* '''[store_locations]''': Stores a series of locations that pass certain criteria into an array. Each member of the array has members 'x' and 'y' (the position) and 'terrain' (the terrain type) and {{DevFeature}} 'owner_side' (villages only).&lt;br /&gt;
** [[StandardLocationFilter]]: a location or location range which specifies the locations to store. You must specify this or no locations will be stored.&lt;br /&gt;
** '''variable''': the name of the variable (array) into which to store the locations&lt;br /&gt;
** '''terrain''': a comma-sperated list of terrain codes. (See [[TerrainCodesWML]] for possible values.) If present, locations will only be chosen if the code for the terrain type of that location is listed.&lt;br /&gt;
** '''radius''': if present, any locations which are within '''radius''' hexes of the location filter will also be stored&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] only locations with units on them that match the filter will be stored. Use a blank filter to only store locations with units.&lt;br /&gt;
* '''[store_villages]''': Stores a series of locations of villages that pass certain criteria into an array. Each member of the array has members 'x' and 'y' (the position) and 'terrain' (the terrain type) and {{DevFeature}} 'owner_side'.&lt;br /&gt;
** '''owner_side''': a side number. If present, only villages owned by this side will be choosen. If owner_side=0, store the unowned villages. &lt;br /&gt;
** '''variable''': the name of the variable (array) into which to store the locations&lt;br /&gt;
** '''terrain''': a series of terrain characters. (See [[TerrainLettersWML]] for possible values.) If present, villages will only be chosen if the terrain code of the terrain type of that location is listed.  You may give a comma separated list of terrains.&lt;br /&gt;
* '''[store_gold]''':Stores a side's gold into a variable.&lt;br /&gt;
** '''side''': (default=1) the side for which the gold should be stored&lt;br /&gt;
** '''variable''': (default='gold') the name of the variable to store the gold in&lt;br /&gt;
* '''[store_side]''': stores information about a certain side in a variable. The variable will contain the member variables 'name', 'team_name', 'gold' and 'income', 'fog', 'shroud', 'user_team_name', 'colour', 'controller', 'village_gold' and 'recruit'.)&lt;br /&gt;
** '''side''': the side whose information should be stored&lt;br /&gt;
** '''variable''': the name of the variable to store the information in&lt;br /&gt;
* '''[clear_variable]''': This will delete the given variable or array. This is good to use to clean up the set of variables -- e.g. a well-behaved scenario will delete any variables that shouldn't be kept for the next scenario before the end of the scenario.&amp;lt;br&amp;gt; Tags and variables of stored units can also be cleared, meaning that [trait]s and [object]s, for example, can be removed.&lt;br /&gt;
** '''name''': the name of the variable to clear.&lt;br /&gt;
* '''[role]''': tries to find a unit to assign a role to.&amp;lt;br&amp;gt;This is useful if you want to choose a non-major character to say some things during the game. Once a role is assigned, you can use '''role=''' in a unit filter to identify the unit with that role (See [[FilterWML]]).&amp;lt;br&amp;gt;However, there is no guarantee that roles will ever be assigned. You can use '''[have_unit]''' (see [if]) to see whether a role was assigned. This tag uses a [[StandardUnitFilter]] with the modification to order the search by type, mark only the first unit found with the role, and the role attribute is not used in the search. If for some reason you want to search for units that have or don't have existing roles, you can use one or more [not] filters. The will check recall lists in addition to units on the map. In normal use, you will probably want to include a ''side'' attribute to force the unit to be on a particular side.&lt;br /&gt;
** '''role''': the value to store as the unit's role. This role is not used in the [[StandardUnitFilter]] when doing the search for the unit to assign this role to.&lt;br /&gt;
** '''type''': a comma-separated list of possible types the unit can be. If any types are given, then units will be searched by type in the order listed. If no type is given, then no particular order with respect to type is guaranteed.&lt;br /&gt;
* {{DevFeature}} '''[store_map_dimensions]''': Stores the map dimensions in a variable.&lt;br /&gt;
** '''variable''': the name of the variable where the values will be saved into. If it is skipped, a variable 'map_size' is used, and its contents overridden, if they existed already. The result is a container variable, with members ''width'' and ''height''.&lt;br /&gt;
* {{DevFeature}} '''[insert_tag]''': inserts a variable as WML&lt;br /&gt;
**'''name''': the [&amp;quot;name&amp;quot;] to be given to the tag&lt;br /&gt;
**'''variable''': name of the variable to be inserted&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[VariablesWML]]&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>A Guy</name></author>
		
	</entry>
</feed>