<?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=NeoPhile</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=NeoPhile"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/NeoPhile"/>
	<updated>2026-05-25T17:21:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=MultiplayerContent&amp;diff=13963</id>
		<title>MultiplayerContent</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=MultiplayerContent&amp;diff=13963"/>
		<updated>2007-02-21T02:07:10Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Building multiplayer campaigns ==&lt;br /&gt;
&lt;br /&gt;
Both the stable and development versions of wesnoth have basic support for campaigns that can be played in multiplayer mode, with your friends, or even with an AI. Since version 1.1.8, more features and support have been added so we recommend a versions 1.1.8+. There will still be some things that don't work as expected as multiplayer campaigns are an area for exploration. While you can and should test your work in hotseat mode, there are a number of things that might behave differently under real network conditions (mostly affecting scenario and side parameters). Keep this in mind and make sure to test your campaign over the net, too.&lt;br /&gt;
This page only documents the differences between writing multiplayer campaigns and single player campaigns, so you might want to read up on [[BuildingCampaigns]] and [[BuildingMultiplayer]] first.&lt;br /&gt;
&lt;br /&gt;
=== The campaign file ===&lt;br /&gt;
&lt;br /&gt;
Multiplayer campaigns do not use the [campaign] tag. As a result of this, multiplayer campaigns only support one difficulty level, though you could support more with enough WML, if you're feeling ambitious. The &amp;quot;campaign file&amp;quot; should look something like this:&lt;br /&gt;
&lt;br /&gt;
 #ifdef MULTIPLAYER&lt;br /&gt;
 {@campaigns/My_Campaign/scenarios}&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
Anything that you would normally put in the campaign tag now goes into the first scenario, if it's supported there. The order of scenarios is determined by next_scenario tags, just like in single player.&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
A scenario in a multiplayer campaign is almost identical to a scenario in a single player campaign. You only need to change the following:&lt;br /&gt;
&lt;br /&gt;
* The [scenario] tag should be replaced with a [multiplayer] tag.&lt;br /&gt;
* The '''next_scenario''' key points to the id of the next scenario.&lt;br /&gt;
* Every scenario after the first should have '''allow_new_game=no''' inside the [multiplayer] tag. This will prevent it from showing up in the map selection menu. ''This does not work in v1.1'', but it causes no harm, and it will work in the future.&lt;br /&gt;
* In v1.1, every scenario in the campaign will appear on the map selection menu, so be sure to include your campaign's name in the [multiplayer] tag's name key. Alternatively, include a warning like &amp;quot;DO NOT PLAY&amp;quot;.&lt;br /&gt;
* Each human-controlled side needs to have a '''controller=human''' key defined in their [side] tag to work in network mode.&lt;br /&gt;
* Each human-controlled side also needs to have a '''save_id''' defined inside their [side] tag. Each side's save_id should be unique, and it should be the same in every scenario. Without this, your recall lists and leaders will not carry over from one scenario to the next.&lt;br /&gt;
* Each AI-controlled side should have '''allow_player=no''' in their [side] tag.&lt;br /&gt;
* The [story] tag will only display for the first player (or maybe it's the host player). You'll have to use [message] tags in the start event if you want everyone to read the story.&lt;br /&gt;
* If you have a file containing macros, it must be referenced by every scenario, since there is no proper campaign file to include it from.&lt;br /&gt;
&lt;br /&gt;
=== The first scenario ===&lt;br /&gt;
&lt;br /&gt;
The first scenario might need some extra work, because the settings from the multiplayer dialog will override the settings in the scenario. However, most of the multiplayer settings can be overridden in the prestart event.&lt;br /&gt;
&lt;br /&gt;
Use a macro like this to force a side to have a particular type of leader.&lt;br /&gt;
 #define MP_SIDE SIDENO TYPE DESC&lt;br /&gt;
         [store_unit]&lt;br /&gt;
         variable=oldunit&lt;br /&gt;
         kill=yes&lt;br /&gt;
                 [filter]&lt;br /&gt;
                 side={SIDENO}&lt;br /&gt;
                 [/filter]&lt;br /&gt;
         [/store_unit]&lt;br /&gt;
 &lt;br /&gt;
         [unit]&lt;br /&gt;
         type={TYPE}&lt;br /&gt;
         description={DESC}&lt;br /&gt;
         unrenameable=yes&lt;br /&gt;
         side={SIDENO}&lt;br /&gt;
         x,y=$oldunit.x,$oldunit.y&lt;br /&gt;
         canrecruit=1&lt;br /&gt;
         [/unit]&lt;br /&gt;
 &lt;br /&gt;
         [clear_variable]&lt;br /&gt;
         name=oldunit&lt;br /&gt;
         [/clear_variable]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Other useful tags include [set_recruit], [modify_side], [modify_turns] and [remove_shroud]. There is currently no way to remove fog. You might also want to use ''experience_modifier=100'' in the [multiplayer] tag.&lt;br /&gt;
&lt;br /&gt;
=== Custom units ===&lt;br /&gt;
&lt;br /&gt;
Since there is no [campaign] tag, there is no natural way to include custom units in a multiplayer campaign. However, there are two workarounds. One way is to use [[EffectWML]] or [store_unit] to modify a mainline unit. The other way is to make your custom units available via an [[EraWML|era]], or by dropping them into ~wesnoth/data/units. If you go this route, using an era is better, because you can keep the units in your campaign directory.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.wesnoth.org/forum/viewtopic.php?t=11349 Multiplayer Campaigns HOWTO forum post]&lt;br /&gt;
* [[BuildingScenarios]]&lt;br /&gt;
* [[BuildingMultiplayer]]&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=CodingStandards&amp;diff=13495</id>
		<title>CodingStandards</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=CodingStandards&amp;diff=13495"/>
		<updated>2007-01-25T19:05:50Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Do not use sprintf */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wesnoth uses modern/advanced C++ that is portable to Visual C++ 6 and GNU G++ 3.0+&lt;br /&gt;
&lt;br /&gt;
== End Non-Public Members of Classes with an Underscore ==&lt;br /&gt;
&lt;br /&gt;
All non-public data members of classes should have their names terminated with an underscore, to show that they are a&lt;br /&gt;
class member. This makes for more readable code, once one is familiar with the convention.&lt;br /&gt;
&lt;br /&gt;
== Use References when a value may not be NULL ==&lt;br /&gt;
&lt;br /&gt;
If a value passed to a function can never be NULL, use a reference instead of a pointer. I.e.&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
rather than&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object* obj);&lt;br /&gt;
&lt;br /&gt;
This more clearly shows the user of the function that obj may never be NULL, without them having to consult&lt;br /&gt;
documentation or the implementation of the function.&lt;br /&gt;
&lt;br /&gt;
== Use Const ==&lt;br /&gt;
&lt;br /&gt;
The 'const' feature of C++ allows interfaces to more clearly specify how they treat objects. Always use const when you&lt;br /&gt;
are not going to modify an object.&lt;br /&gt;
&lt;br /&gt;
I.e.&lt;br /&gt;
&lt;br /&gt;
  void myfunction(const Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
demonstrates to the caller of myfunction() that obj will not be modified. If myfunction may modify obj, then use&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
likewise, if a variable is not changed after initialization, make it const.&lt;br /&gt;
&lt;br /&gt;
== Write Exception-Safe Code ==&lt;br /&gt;
&lt;br /&gt;
Wesnoth code should be exception-safe, even if you do not use exceptions directly. That is, you should be able to assume that an exception is thrown almost anywhere from within the code, with well-defined results (i.e. no resource leaks).&lt;br /&gt;
&lt;br /&gt;
Code that uses a pattern like,&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
  SDL_Surface* image = IMG_Load(&amp;quot;image.bmp&amp;quot;);&lt;br /&gt;
  ...some code, which uses 'image'...&lt;br /&gt;
  SDL_FreeSurface(image);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
is bad, because the code may throw an exception, and 'image' will never be freed. Instead, use wrapper objects which free the object in their destructor.&lt;br /&gt;
&lt;br /&gt;
For SDL_Surface objects, use the &amp;lt;tt&amp;gt;surface&amp;lt;/tt&amp;gt; class. So you could rewrite the above code,&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
  surface image(IMG_Load(&amp;quot;image.bmp&amp;quot;));&lt;br /&gt;
  ...some code, which uses 'image'...&lt;br /&gt;
  } ''the image is automatically freed here when 'image' is destroyed&lt;br /&gt;
&lt;br /&gt;
Instead of allocating memory directly using new[] or malloc(), use language-provided containers, such as vector.&lt;br /&gt;
&lt;br /&gt;
== Respect for loop scoping of different platforms ==&lt;br /&gt;
&lt;br /&gt;
In the code,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {...}&lt;br /&gt;
&lt;br /&gt;
the variable 'i' is scoped within the for loop according to ISO/ANSI C++ and GNU G++. However it is scoped within the&lt;br /&gt;
surrounding scope according to Visual C++ 6.&lt;br /&gt;
&lt;br /&gt;
This means that the code,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
is illegal on VC++6, because i is defined twice, although it is legal according to the standard, and GNU G++.&lt;br /&gt;
&lt;br /&gt;
On VC++6, the legal way to write it would be,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
But this is illegal according to the standard, because 'i' is not defined in the second loop. The correct way to write&lt;br /&gt;
this code to conform to the standard and work on all platforms is to simply abandon declaring variables in the&lt;br /&gt;
initialization statement of a for loop when the variable must be reused in the same scope,&lt;br /&gt;
&lt;br /&gt;
  int i;&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
== Use the function templates minimum and maximum ==&lt;br /&gt;
&lt;br /&gt;
Standard C++ offers the function templates min and max to find the minimum and maximum of two values on which operator&lt;br /&gt;
&amp;lt;&lt;br /&gt;
is defined. Unfortunately, many hoops must be leapt through to get this working on VC++. So, we do not use standard&lt;br /&gt;
min&lt;br /&gt;
and max. Instead, we use minimum and maximum, defined in utils.hpp.&lt;br /&gt;
&lt;br /&gt;
Usage is fairly natural:&lt;br /&gt;
&lt;br /&gt;
  int i = minimum(x,y);&lt;br /&gt;
&lt;br /&gt;
Note that in the above example, if x is an unsigned integer, and y is a signed integer, VC++ will have problems. You&lt;br /&gt;
must explicitly specify the version of minimum being called in such cases:&lt;br /&gt;
&lt;br /&gt;
  int i = minimum&amp;lt;int&amp;gt;(x,y);&lt;br /&gt;
&lt;br /&gt;
== Do not use wstring ==&lt;br /&gt;
&lt;br /&gt;
The standard C++ wstring class, defined as a basic_string&amp;lt; wchar_t &amp;gt;, does not exist in some platforms supported&lt;br /&gt;
by&lt;br /&gt;
Wesnoth. Use wide_string, defined in language.hpp, instead. wide_string is actually defined as a vector&amp;lt; wchar_t &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use util::array instead of C-style Arrays ==&lt;br /&gt;
&lt;br /&gt;
C-style arrays are very efficient, but their interface is ugly. Use util::array defined in array.hpp. It is a wrapper&lt;br /&gt;
for an array which has a C++ container-style interface. If you need to, extend it to make it fit your needs.&lt;br /&gt;
&lt;br /&gt;
== Do not use sprintf ==&lt;br /&gt;
&lt;br /&gt;
Sprintf does not check whether or not it is writing past the end of the space allocated. This is a security problem if someone other than the person running the game can cause sprintf to write very long strings. In Wesnoth this untrusted data could come potentially from other players in a multiplayer game or from downloaded campaigns. Instead you should use snprintf with the second argument being sizeof of the buffer that will hold the result.&lt;br /&gt;
&lt;br /&gt;
== Do not use C-style casts ==&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
  if(i-&amp;gt;second.side() == (size_t)player_number_) {&lt;br /&gt;
&lt;br /&gt;
is considered bad practice in C++ since a C-style cast is overpowered -- if types change around it could end up casting away constness, or performing an implementation-defined data reinterpretation (basically a C-style cast is a compiler generated combination of static_cast, reinterpret_cast, and const_cast).&lt;br /&gt;
&lt;br /&gt;
Good programming style is to use the least powerful tool available that does what you want. For example,&lt;br /&gt;
&lt;br /&gt;
  if(i-&amp;gt;second.side() == static_cast&amp;lt;size_t&amp;gt;(player_number_)) {&lt;br /&gt;
&lt;br /&gt;
Alternatively, a constructor call may be used for non-builtin types.&lt;br /&gt;
&lt;br /&gt;
Note: there may be some obscure cases where a C-style cast is desirable, such as converting a pointer to an integer type of unspecified size.&lt;br /&gt;
&lt;br /&gt;
== Document &amp;quot;config&amp;quot; preconditions and postconditions ==&lt;br /&gt;
&lt;br /&gt;
In the Wesnoth code you will commonly encounter a data container known as the &amp;quot;config,&amp;quot; which contains heirarchical string data (such as WML contents or game settings). The tagged &amp;quot;children&amp;quot; of the config and their string &amp;quot;attributes&amp;quot; are arranged in an ordered and mapped format internally using STL.&lt;br /&gt;
&lt;br /&gt;
Because config data is utilized in so many ways and places,  it can be difficult to track across the scope of the entire program. You should document all public functions that take/return a config, specifying config content expectations. In particular, if your function requires a config parameter, specify where/how the config should be created. This will be a great help to any future coders who need to call or modify your function.&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SingleUnitWML&amp;diff=13488</id>
		<title>SingleUnitWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SingleUnitWML&amp;diff=13488"/>
		<updated>2007-01-25T00:53:56Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* how to describe a single unit */ Speeling and grammer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== How to describe a single unit ==&lt;br /&gt;
&lt;br /&gt;
This tag, '''[unit]''', describes a single unit on the map, for example Konrad.&lt;br /&gt;
It is different from the [unit] in [units], which describes a class of units.&lt;br /&gt;
&lt;br /&gt;
The following keys are recognized:&lt;br /&gt;
* ''type'' the ID of the unit's unit type. See [[UnitWML]].&lt;br /&gt;
&lt;br /&gt;
* ''side'' the side that the unit is on.&lt;br /&gt;
&lt;br /&gt;
* ''gender'' can be set to male or female to designate the gender of the unit. Default is male.&lt;br /&gt;
&lt;br /&gt;
* ''x'', ''y'' the location of the unit. If a location isn't provided and the side the unit will belong to has a recall list, the unit will be created on the recall list.&lt;br /&gt;
&lt;br /&gt;
* ''description'' used in standard unit filter ([[FilterWML]]). Note that this field is not filled in with names created at random when recruiting units. Nor is it affected by a player renaming a unit. So when designing maps you don't have to worry about naming conflicts.&lt;br /&gt;
&lt;br /&gt;
* ''user_description'' the name of the unit that is shown to the user. Default ''description''.&lt;br /&gt;
&lt;br /&gt;
* ''generate_description'' if set to &amp;quot;yes&amp;quot;, will generate a new name (user_description) for the unit, as if the unit was a freshly-recruited one.&lt;br /&gt;
&lt;br /&gt;
* ''unrenamable'' if 'yes', the user_description cannot be changed by the player (which is only possible when the unit is on the player's side anyway).&lt;br /&gt;
&lt;br /&gt;
* ''traits_description'' the description of the unit's traits which is displayed. However if it is not specified explicitly, the unit's actual traits' names will be used instead, so it is normally not necessary to set this.&lt;br /&gt;
&lt;br /&gt;
* ''random_traits'' 'yes' will choose the traits randomly, just like a recruited unit. '''Don't use this in an MP Scenario as this will cause an Out of Sync (OOS) error'''.&lt;br /&gt;
&lt;br /&gt;
* ''canrecruit'' a special key for leaders.&lt;br /&gt;
** '0' default. Unit cannot recruit.&lt;br /&gt;
** '1' unit can recruit.&lt;br /&gt;
: Normally when a team controls no units with '''canrecruit=1''', that team loses. However, even if your team has lost you continue to play with whatever units you still have until the scenario is over. Usually scenarios end when only one team is left with a leader that can recruit, but special victory conditions can be set up in campaigns. Normally you want to set the leader of a side with '''canrecruit=1'''. If you don't want the leader to recruit, it is usually better to just not give him any unit types to recruit, than to make a special victory condition.&lt;br /&gt;
&lt;br /&gt;
* ''upkeep'' the amount of upkeep the unit costs.&lt;br /&gt;
** &amp;quot;loyal&amp;quot; no upkeep cost. Can be changed by the effect 'loyal' (see [[EffectWML]])&lt;br /&gt;
** &amp;quot;full&amp;quot; unit costs ''level'' upkeep (see [[UnitWML]]). Default for recruited units.&lt;br /&gt;
** An integer can be used to set the upkeep cost to that number.&lt;br /&gt;
** If no upkeep is specified, which is the default for units defined in WML (including leaders in multiplayer games), there is no upkeep cost.&lt;br /&gt;
&lt;br /&gt;
* ''overlays'' a list of images that are overlayed on the unit.&lt;br /&gt;
&lt;br /&gt;
* ''goto_x'', ''goto_y'' UI settings that control courses. Default is 0,0 i.e. the unit is not on a course.&lt;br /&gt;
&lt;br /&gt;
* ''hitpoints'' the HP of the unit. Default is the max HP for ''type''.&lt;br /&gt;
&lt;br /&gt;
* ''experience'' the XP of the unit. Default is 0.&lt;br /&gt;
&lt;br /&gt;
* ''moves'' number of move points the unit has left. Default is the movement for ''type''.&lt;br /&gt;
&lt;br /&gt;
* ''resting'' whether the unit has not moved yet this turn. Used to decide whether to give a unit rest healing.&lt;br /&gt;
&lt;br /&gt;
* ''role'' used in standard unit filter ([[FilterWML]]). Can be set using [role] (see [[InternalActionsWML]]).&lt;br /&gt;
&lt;br /&gt;
* ''ai_special'' causes the unit to act differently.&lt;br /&gt;
** &amp;quot;guardian&amp;quot; the unit will not move, except to attack something in the turn it moves (so, it only can move if an enemy unit gets within range of it).&lt;br /&gt;
&lt;br /&gt;
* ''facing'' which way the unit is facing (this only affects how the unit is displayed).&lt;br /&gt;
** Possible values are ''se'', ''s'', ''sw'', ''nw'', ''n'', ''ne''. Using ''sw'' is preferred for a &amp;quot;reversed&amp;quot; facing (looking to the left) and ''se'' for a normal (looking to the right) facing.&lt;br /&gt;
&lt;br /&gt;
* ''profile'' sets a default portrait image for this unit. If the unit type already has a portrait set, this is used instead for this unit.&lt;br /&gt;
** &amp;quot;unit_image&amp;quot; if given instead of a filename, uses the unit's base image as the portrait (in the same manner that unit types without portraits do by default).&lt;br /&gt;
&lt;br /&gt;
* ''animate'' if ''yes'', fades the unit in like when it's recruited/recalled.&lt;br /&gt;
&lt;br /&gt;
* '''[status]''' the status of the unit. This affects different features of the unit, for example whether the unit loses health each turn. Default for all keys is 'off', but this can be changed by the scenario or by special abilities (see [[AbilitiesWML]]). The status of a unit is displayed on the Status Table; each status modification ''statusmod'' is represented by the image '''misc/statusmod.png'''.&lt;br /&gt;
** ''poisoned'' if 'on', the unit loses 8 HP each turn. See also ''heals'', ''cures'', [[AbilitiesWML]].&lt;br /&gt;
** ''slowed'' if 'on', the unit has 50% of its normal movement and does half damage. When the controller of the unit's turn is over, ''slowed'' is set to 'off'  &lt;br /&gt;
** ''stone'' if 'on', the unit cannot move, attack, or be attacked.&lt;br /&gt;
** ''ambush'' if 'on', the unit cannot be seen by opponents.&lt;br /&gt;
&lt;br /&gt;
* '''[variables]''' a set of variables that will be stored when this unit is stored (See [store_unit], [[InternalActionsWML]]). The attribute '''variable'''='''value''' means that when the unit is stored in the array ''unit'', the variable ''unit''.variables.''variable'' will have the value ''value'' (See [[VariablesWML]]).&lt;br /&gt;
&lt;br /&gt;
* '''[modifications]''' changes that have been made to the unit.&lt;br /&gt;
** '''[trait]''' a trait the unit has. Same format as [trait], [[UnitsWML]].&lt;br /&gt;
** '''[object]''' an object the unit has. Same format as [object], [[DirectActionsWML]].&lt;br /&gt;
&lt;br /&gt;
* ''unit_description'' overrides the unit type description for this unit. You will probably want to set up a ''post_advance'' [[EventWML|event]] to override the default description after promotions.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[UnitWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=BuildingUnits&amp;diff=13487</id>
		<title>BuildingUnits</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=BuildingUnits&amp;diff=13487"/>
		<updated>2007-01-25T00:44:30Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Using your new unit */ Corrected/clarified info, fixed double-spaces after periods.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Making new units is fairly easy.  Unit configuration files are plain text files that you can edit with any editor such as Notepad, TextEdit, gedit, pico, vi, emacs, etc.  You will need to become familiar with [[UnitWML|WML]] in order to make a new unit.  This page contains a more in-depth discussion of Unit WML syntax and will walk you through the creation of a new unit and discuss how you can use it in-game.&lt;br /&gt;
&lt;br /&gt;
== Recommended procedure ==&lt;br /&gt;
The easiest way to make a new unit is to copy and paste an existing unit, then modify it.  Navigate to the game's data/units directory and copy any unit.  When you are editing the unit, attention to detail is key.  If you forget to modify each key (for example, the unique id key), problems will result.&lt;br /&gt;
&lt;br /&gt;
P.S. Make sure you use gimp to create a blank background.&lt;br /&gt;
&lt;br /&gt;
== Using your new unit ==&lt;br /&gt;
Any unit in the game's ./data/units directory or ''userdata''/data/units will be recognized by the game. If you only want to put use it once or twice as a special unit, that's all you need to do. However, just because you made a new unit does NOT mean that it can be recruited. Each scenario and multiplayer era has a specific recruit list. If your unit is not on the list, you can't recruit it. This means you need to modify the ''recruit='' key in the appropriate configuration file. [[BuildingMultiplayer]] describes different ways you do this for multiplayer. To add a unit to a campaign, read about scenarios, sides, and recruit lists in [[BuildingScenarios]].&lt;br /&gt;
[[Image:paladin_605.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Distributing your unit ==&lt;br /&gt;
If you made a single unit, post it on the [http://www.wesnoth.org/forum forum].  If you made a whole group of units, you can make them into a multiplayer faction or you can upload a unit pack.&lt;br /&gt;
&lt;br /&gt;
If you want to make a faction, follow the instructions in the [[BuildingFactions]] article.  You should create a new era and add your units as one of the factions.  You will not be able to add your units to any era that ships with the game.&lt;br /&gt;
&lt;br /&gt;
If you want to make a unit pack, the procedure is easier.  Unit packs are distributed for campaign writers who want to use your units in their campaigns/eras.  They download your unit pack and copy/paste the units and images into their campaign/era.&lt;br /&gt;
* Navigate to the ''userdata''/data/campaigns directory.  Everything from now on will occur relative to here.  The era we'll use as an example will be called MyUnitPack&lt;br /&gt;
* Create a text file called MyUnitPack.cfg.  Add the following lines:&lt;br /&gt;
 #		#define USE_MYUNITS		#&amp;lt;- replace MYUNITS with something descriptive&lt;br /&gt;
 #		#enddef&lt;br /&gt;
 #		#ifdef USE_MYUNITS		#&amp;lt;- replace MYUNITS with something descriptive&lt;br /&gt;
 #		{@campaigns/MyUnitPack/}&lt;br /&gt;
 #		#endif&lt;br /&gt;
:* These lines are commented out (with the #).  That way when the unit pack ships it won't affect the game.  If someone wants the game to be able to see these units, he can uncomment those lines and it will work.  However, this usually causes problems in multiplayer (you will be using units no one else has), but it can be fun for campaigns.&lt;br /&gt;
:* NOTE: the commenting/uncommenting trick will only work if the units branch off of an existing unit.  Custom L1 units will NOT show up in game automatically without editing another configuration file somewhere (scenario config file or multiplayer.cfg)&lt;br /&gt;
* Create another text file called MyUnitPack.pbl. (See [[PblWML]] for more details about *.pbl files.) Add the following lines to it:&lt;br /&gt;
 author=&amp;quot;''your name''&amp;quot;&lt;br /&gt;
 icon=&amp;quot;''any image file in the game's ./images directory''&amp;quot;&lt;br /&gt;
 version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
 title=&amp;quot;My Awesome Unit Pack&amp;quot;&lt;br /&gt;
 description=&amp;quot;New race of lizard men.&amp;quot;&lt;br /&gt;
* Create a folder called MyUnitPack.  Navigate to it.&lt;br /&gt;
* Create two subdirectories: units and images.  Place your unit cfg files and artwork into those subdirectories&lt;br /&gt;
* Create a text file called MyUnitPack.cfg (or another name of your choosing).  Add the following lines:&lt;br /&gt;
 [binary_path]&lt;br /&gt;
 path=data/campaigns/MyUnitPack&lt;br /&gt;
 [/binary_path]&lt;br /&gt;
 [+units]&lt;br /&gt;
 {@campaigns/MyUnitPack/units}&lt;br /&gt;
 [/units]&lt;br /&gt;
* You should be ready to distribute your unit pack on the campaign server now&lt;br /&gt;
* PLEASE change the names to something unique before you publish&lt;br /&gt;
&lt;br /&gt;
== Unit WML discussion ==&lt;br /&gt;
&lt;br /&gt;
Units are enclosed in '''[unit]''' tags.&lt;br /&gt;
&lt;br /&gt;
This section only provides some tips and pointers in making a unit.  Feel free to add pointers of your own.  For the full, current, complete WML reference on what to put in your [unit], see and frequently revisit [[UnitWML|The Unit WML reference page]].&lt;br /&gt;
* The first attribute of a unit is the ''id'' key, which is a unique identifier for the unit. As value of the ''type'' attribute for these units, the ''id'' key is used. (See [[BuildingScenarios]]).&lt;br /&gt;
* When referencing the unit in a ''type'' key, the id must be reproduced verbatim, without typos, and in a case-sensitive manner.  If you don't do this, the key won't work.  If you can't recruit in a scenario, it's probably because you have a typo in one of the unit ids and the ''recruit'' key was invalidated.&lt;br /&gt;
* It also has a ''name'' key, which is the (translatable) name of the unit, and is displayed on the Status Table when a unit of this type is selected.  It does not need to be unique (but it helps).&lt;br /&gt;
* Do not set movement to 0.  It creates weird infinite movement behavior.  This might be fixed in the future.  For now, to make an immobile unit, set movement to 1 use [movement_costs] to make it unable to move onto any terrain.&lt;br /&gt;
* Also, make sure you give the unit at least one [attack].  If not, there is a bug in the game code that will cause the game to crash when it attempts to find attacks.  This may also be fixed in the future.&lt;br /&gt;
* See [[BuildingScenariosIntermediate]] for more information on attacks.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Create]]&lt;br /&gt;
* [[EditingWesnoth]]&lt;br /&gt;
* [[Creating Unit Art]]&lt;br /&gt;
* [[CampaignServerWML]]&lt;br /&gt;
* [[PblWML]]&lt;br /&gt;
* [[BuildingCampaignsThePBLFile]]&lt;br /&gt;
* [[Team_Color_Shifting]]&lt;br /&gt;
&lt;br /&gt;
{{Create}}&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=11076</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=11076"/>
		<updated>2006-08-07T07:42:55Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: Added map label (as opposed to theme label)&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;
[[AbilitiesWMLTechnical1.1.3|abilities]],&lt;br /&gt;
[[CampaignWML#The_.5Babout.5D_tag|about]],&lt;br /&gt;
[[StatisticalScenarioWML|advances]],&lt;br /&gt;
[[UnitWML|advancefrom]],&lt;br /&gt;
[[AiWML|ai]],&lt;br /&gt;
[[DirectActionsWML|allow_recruit]],&lt;br /&gt;
[[VariablesWML|array]],&lt;br /&gt;
[[AttackWML|attack]],&lt;br /&gt;
[[StatisticalScenarioWML|attacks]],&lt;br /&gt;
[[AiWML|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[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;
[[StatisticalScenarioWML|deaths]],[[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;
[[UnitsWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],&lt;br /&gt;
[[DirectActionsWML|endlevel]],&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_second]], [[HelpWML|format]], [[AttackWML|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]], [[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]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[HelpWML|jump]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
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;
[[AttackWML|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;
[[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]], [[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]], [[HelpWML|section]], [[DirectActionsWML|set_recruit]],&lt;br /&gt;
[[InternalActionsWML|set_variable]], [[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML|sound]], [[ReplayWML|source]], [[AbilitiesWMLTechnical1.1.3|specials]]&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_starting_location]], [[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;
[[TerrainWML|terrain]], [[DirectActionsWML|terrain]], [[TerrainGraphicsWML|terrain_graphics]], [[ScenarioWML#Test_scenario|test]],&lt;br /&gt;
[[CampaignWML#The_.5Btextdomain.5D_tag|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]],&lt;br /&gt;
[[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]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=InterfaceActionsWML&amp;diff=11075</id>
		<title>InterfaceActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=InterfaceActionsWML&amp;diff=11075"/>
		<updated>2006-08-07T07:39:41Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Other interface tags */ added [label]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== Interface actions ==&lt;br /&gt;
&lt;br /&gt;
Interface actions are actions that do not have an effect on gameplay;&lt;br /&gt;
instead, they show something to the player.  The main interface tags&lt;br /&gt;
are '''[message]''' and '''[objectives]''', but several other tags affect&lt;br /&gt;
the interface also.&lt;br /&gt;
&lt;br /&gt;
== [message] ==&lt;br /&gt;
The most commonly used interface action is [message], which displays a message to the user in a dialog box. It can also be used to take input from the user.&lt;br /&gt;
&lt;br /&gt;
The following key/tags are accepted for [message]:&lt;br /&gt;
* standard unit filter - the unit whose profile and name are displayed. If no unit matching this filter is found, the message is not displayed (The unit has probably been killed).&amp;lt;br&amp;gt;'''[message]''' elements should be constructed so that it is either guaranteed that a certain unit is alive, or so that dialog flows smoothly even if the message isn't displayed.&lt;br /&gt;
&lt;br /&gt;
* ''speaker'' an alternative to standard unit filter&lt;br /&gt;
** 'narrator' the dialog box is displayed without a caption for the unit speaking or a unit image&lt;br /&gt;
** 'unit' the primary unit for the event is speaking&lt;br /&gt;
** 'second_unit' the secondary unit for the event is speaking&lt;br /&gt;
&lt;br /&gt;
* ''message'' (translatable) the text to display to the right of the image. ''message'' is sometimes multiple lines; if it is, be sure to use quotes(''' ' ''' or ''' &amp;quot; ''')&lt;br /&gt;
* ''image'' (default: profile image of speaker) the image to display next to the message.&lt;br /&gt;
* ''caption'' (default: name of speaker) the caption to display under the image. Name to be displayed.&lt;br /&gt;
* ''sound'' a sound effect (wav file) to play as the message is displayed. {{DevFeature}} This can be a comma-separated list, from which one will be randomly chosen.&lt;br /&gt;
* '''[option]''' zero or more '''[option]''' elements may be present. If '''[option]''' elements are present, then each option will be displayed in a menu for the user to select one option.&lt;br /&gt;
** ''message'' (translatable) the text displayed for the option (see [[DescriptionWML]])&lt;br /&gt;
** '''[command]''' an element containing actions which are executed if the option is selected.&lt;br /&gt;
&lt;br /&gt;
Text formatting options for '''[message]'''&lt;br /&gt;
* An asterisk (*) as the first character causes the line to be boldfaced.&lt;br /&gt;
* An at symbol (@) as the first character causes the line to be green, as done with victory conditions.&lt;br /&gt;
* A pound symbol (#) as the first character causes the line to be red, as done with defeat conditions.&lt;br /&gt;
* A backquote (`) as the first character causes the line to be smaller.&lt;br /&gt;
* If used, the caption key text is boldfaced.&lt;br /&gt;
&lt;br /&gt;
== [objectives] ==&lt;br /&gt;
The other tag used for plot development is '''[objectives]'''.&lt;br /&gt;
The '''[objectives]''' tag overwrites any previously set objectives,&lt;br /&gt;
and displays text which should describe the objectives of the scenario.&lt;br /&gt;
Scenario objectives are displayed on the player's first turn after the tag is used,&lt;br /&gt;
or as part of the event if it triggers during that player's turn.&lt;br /&gt;
Objectives can also be accessed at any time in a scenario using the&lt;br /&gt;
&amp;quot;Scenario Objectives&amp;quot; game menu option, making this tag useful for&lt;br /&gt;
scenario-specific information that the player may need to refer to during play.&lt;br /&gt;
&lt;br /&gt;
This tag renders the ''objectives'' attribute of [scenario] obsolete (see ''objectives'', [[ScenarioWML]]).&lt;br /&gt;
Instead of using ''objectives'', use '''[objectives]''' to set scenario objectives inside a prestart event.&lt;br /&gt;
It can also be used to overwrite the starting objectives mid-scenario.&lt;br /&gt;
&lt;br /&gt;
Attributes of '''[objectives]''':&lt;br /&gt;
* ''side'' Default '0'. The side to set the objectives for. A value of 0 sets objectives for all sides.&lt;br /&gt;
* ''summary'' Displayed first in the objectives text, this should describe the basic objective for the overall scenario.  Can be omitted.&lt;br /&gt;
* ''note'' Displayed last in the objectives text, this is sometimes used for hints or additional information.  Can be omitted.&lt;br /&gt;
* ''victory_string'' Default ' _ &amp;quot;Victory:&amp;quot;', this text precedes the victory objectives.&lt;br /&gt;
* ''defeat_string'' Default ' _ &amp;quot;Defeat:&amp;quot;', this text precedes the defeat objectives.&lt;br /&gt;
* ''silent'' Default: not present. If set to &amp;quot;yes&amp;quot;, the objectives are silently changed. Else, they will be shown to the user when appropriate.&lt;br /&gt;
&lt;br /&gt;
Tags of '''[objectives]''':&lt;br /&gt;
* '''[objective]''' describes a win or loss condition. Most scenarios have multiple win or loss conditions, so use a separate [objective] subtag for each line; this helps with translations.&lt;br /&gt;
** ''description'' text for the specific win or loss condition.&lt;br /&gt;
** ''condition'' The color and placement of the text. Values are 'win'(colored green, placed after ''victory_string'') and 'lose'(colored red, placed after ''defeat_string'')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other interface tags ==&lt;br /&gt;
&lt;br /&gt;
The following tags are also action tags:&lt;br /&gt;
* '''[item]''' makes a graphical item appear on a certain hex. Note this only places the graphics for an item. It does not make the item do anything. Use a moveto event to make moving onto the item do something.&lt;br /&gt;
** ''x'', ''y'' the location to place the item.&lt;br /&gt;
** ''image'' the image (in ''images/ ''as .png) to place on the hex.&lt;br /&gt;
** ''halo'' an image to place centered on the hex. Use this instead of ''image'' if the image is bigger than the hex.&lt;br /&gt;
* '''[removeitem]''' removes any graphical items on a given hex&lt;br /&gt;
** ''x'', ''y'' the hex to remove items off&lt;br /&gt;
* '''[print]''' displays a message across the screen. The message will disappear after a certain time.&lt;br /&gt;
** ''text'' (translatable) the text to display.&lt;br /&gt;
** ''size'' (default=12) the pointsize of the font to use&lt;br /&gt;
** ''duration'' (default=50) the length of time to display the text for. This is measured in the number of 'frames'. A frame in Wesnoth is usually displayed for around 30ms.&lt;br /&gt;
** ''red'', ''green'', ''blue'' (default=0,0,0) the color to display the text in. Values vary from 0-255.&lt;br /&gt;
* '''[move_unit_fake]''' moves an image of a unit along a certain path on the map. The path does not need to be a continuous list of adjacent hexes, so for example only the start and end points can be given, in which case the straightest line between those points will be calculated and used.&lt;br /&gt;
** ''type'' the type of the unit whose image to use&lt;br /&gt;
** ''x'' a comma-seperated list of x locations to move along&lt;br /&gt;
** ''y'' a comma-seperated list of y locations to move along (x and y values are matched pairs)&lt;br /&gt;
** ''side'' {{DevFeature}} the side of the fake unit, used for team colouring the fake unit&lt;br /&gt;
* '''[hide_unit]''' makes the given unit become invisible. Useful in conjunction with '''[move_unit_fake]''' to move a leader unit into position on-screen. Only one unit may be hidden at a time.&lt;br /&gt;
** ''x'', ''y'' location of the unit to be hidden. (NOT a standard unit filter! Just x and y.)&lt;br /&gt;
* '''[unhide_unit]''' stops the currently hidden unit from being hidden.&lt;br /&gt;
* '''[scroll]''' Scroll a certain number of pixels in a given direction. Useful for earthquake/shaking effects.&lt;br /&gt;
** ''x'', ''y'' the number of pixels to scroll along the x and y axis&lt;br /&gt;
* '''[scroll_to]''' Scroll to a given hex&lt;br /&gt;
** ''x'', ''y'' the hex to scroll to&lt;br /&gt;
* '''[scroll_to_unit]''' Scroll to a given unit&lt;br /&gt;
** standard unit filter&lt;br /&gt;
* '''[sound]''' Plays a sound&lt;br /&gt;
** ''name'' the filename of the sound to play (in ''sounds/'' as .wav or .ogg)&lt;br /&gt;
* '''[music]''' Switches to playing different music&lt;br /&gt;
** ''name'' the filename of the music to play (in ''music/'' as .ogg)&lt;br /&gt;
** {{DevFeature}} see [[MusicListWML]] for the correct syntax&lt;br /&gt;
* '''[colour_adjust]''' tints the colour of the screen.&lt;br /&gt;
** ''red'', ''green'', ''blue'' values from -255 to 255, the amount to tint by for each colour&lt;br /&gt;
* '''[delay]''' pauses the game&lt;br /&gt;
** ''time'' the time to pause in milliseconds&lt;br /&gt;
* '''[redraw]''' redraws the screen (this normally isn't done during events, although some of the other interface actions cause the screen or parts of it to be redrawn).&lt;br /&gt;
** ''side'' {{DevFeature}} if used, recalculates fog and shroud for that side. Useful if you for example spawn friendly units in the middle of an event and want the shroud to update accordingly (otherwise units that spawn inside fog would remain invisible for the duration of the event, since the fog would not automatically get cleared around them).&lt;br /&gt;
* '''[unit_overlay]''' sets an image that will be drawn over a particular unit, and follow it around&lt;br /&gt;
** ''x'', ''y'' the location of the unit to overlay on&lt;br /&gt;
** ''image'' the image to place on the unit&lt;br /&gt;
* '''[remove_unit_overlay]''' removes a particular overlayed image from a unit&lt;br /&gt;
** ''x'', ''y'' the location of the unit to remove an overlay from&lt;br /&gt;
** ''image'' the image to remove from the unit&lt;br /&gt;
* '''[animate_unit]''' uses the custom animation of a unit to animate it on screen (if the unit has the corresponding animation)&lt;br /&gt;
** ''flag'' the key to find the good custom animation in the unit description see the '''[extra_anim]''' description in [[AnimationWML]]&lt;br /&gt;
** '''[filter]''' a standard unit filter see [[FilterWML]] by default, the unit at the event location will be animated. You can use this tag to choose what unit to animate&lt;br /&gt;
* '''[label]''' places a label on the map.&lt;br /&gt;
** ''x'', ''y'' the location of the label&lt;br /&gt;
** ''text'' what the label should say&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=11074</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=11074"/>
		<updated>2006-08-07T07:34:26Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: Added [modify_turns]&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;
[[AbilitiesWMLTechnical1.1.3|abilities]],&lt;br /&gt;
[[CampaignWML#The_.5Babout.5D_tag|about]],&lt;br /&gt;
[[StatisticalScenarioWML|advances]],&lt;br /&gt;
[[UnitWML|advancefrom]],&lt;br /&gt;
[[AiWML|ai]],&lt;br /&gt;
[[DirectActionsWML|allow_recruit]],&lt;br /&gt;
[[VariablesWML|array]],&lt;br /&gt;
[[AttackWML|attack]],&lt;br /&gt;
[[StatisticalScenarioWML|attacks]],&lt;br /&gt;
[[AiWML|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[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;
[[StatisticalScenarioWML|deaths]],[[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;
[[UnitsWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],&lt;br /&gt;
[[DirectActionsWML|endlevel]],&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_second]], [[HelpWML|format]], [[AttackWML|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]], [[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]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[HelpWML|jump]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[ThemeWML|label]], [[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;
[[AttackWML|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;
[[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]], [[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]], [[HelpWML|section]], [[DirectActionsWML|set_recruit]],&lt;br /&gt;
[[InternalActionsWML|set_variable]], [[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML|sound]], [[ReplayWML|source]], [[AbilitiesWMLTechnical1.1.3|specials]]&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_starting_location]], [[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;
[[TerrainWML|terrain]], [[DirectActionsWML|terrain]], [[TerrainGraphicsWML|terrain_graphics]], [[ScenarioWML#Test_scenario|test]],&lt;br /&gt;
[[CampaignWML#The_.5Btextdomain.5D_tag|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]],&lt;br /&gt;
[[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]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=MultiplayerContent&amp;diff=11032</id>
		<title>MultiplayerContent</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=MultiplayerContent&amp;diff=11032"/>
		<updated>2006-08-04T20:49:05Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Scenarios */ Added item for [story] tags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Building multiplayer campaigns ==&lt;br /&gt;
&lt;br /&gt;
Both the stable and development versions of wesnoth have basic support for campaigns that can be played in multiplayer mode, with your friends, or even with an AI. Since version 1.1.8, more features and support have been added so we recommend a versions 1.1.8+. There will still be some things that don't work as expected as multiplayer campaigns are an area for exploration. While you can and should test your work in hotseat mode, there are a number of things that might behave differently under real network conditions (mostly affecting scenario and side parameters). Keep this in mind and make sure to test your campaign over the net, too.&lt;br /&gt;
This page only documents the differences between writing multiplayer campaigns and single player campaigns, so you might want to read up on [[BuildingCampaigns]] and [[BuildingMultiplayer]] first.&lt;br /&gt;
&lt;br /&gt;
=== The campaign file ===&lt;br /&gt;
&lt;br /&gt;
Multiplayer campaigns do not use the [campaign] tag. As a result of this, multiplayer campaigns only support one difficulty level, though you could support more with enough WML, if you're feeling ambitious. The &amp;quot;campaign file&amp;quot; should look something like this:&lt;br /&gt;
&lt;br /&gt;
 #ifdef MULTIPLAYER&lt;br /&gt;
 {@campaigns/My_Campaign/scenarios}&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
Anything that you would normally put in the campaign tag now goes into the first scenario, if it's supported there. The order of scenarios is determined by next_scenario tags, just like in single player.&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
A scenario in a multiplayer campaign is almost identical to a scenario in a single player campaign. You only need to change the following:&lt;br /&gt;
&lt;br /&gt;
* The [scenario] tag should be replaced with a [multiplayer] tag.&lt;br /&gt;
* The '''next_scenario''' key points to the id of the next scenario.&lt;br /&gt;
* Every scenario after the first should have '''allow_new_game=no''' inside the [multiplayer] tag. This will prevent it from showing up in the map selection menu. ''This does not work in v1.1'', but it causes no harm, and it will work in the future.&lt;br /&gt;
* In v1.1, Every scenario in the campaign will appear on the map selection menu, so be sure to include your campaign's name in the [multiplayer] tag's name key. Alternatively, include a warning like &amp;quot;DO NOT PLAY&amp;quot;.&lt;br /&gt;
* Each human-controlled side needs to have a '''controller=human''' key defined in their [side] tag to work in network mode.&lt;br /&gt;
* Each human-controlled side also needs to have a '''save_id''' defined inside their [side] tag. Each side's save_id should be unique, and it should be the same in every scenario. Without this, your recall lists and leaders will not carry over from one scenario to the next.&lt;br /&gt;
* Each AI-controlled side should have '''allow_player=no''' in their [side] tag.&lt;br /&gt;
* The [story] tag will only display for the first player (or maybe it's the host player). You'll have to use [message] tags in the start event if you want everyone to read the story.&lt;br /&gt;
&lt;br /&gt;
=== The first scenario ===&lt;br /&gt;
&lt;br /&gt;
The first scenario might need some extra work, because the settings from the multiplayer dialog will override the settings in the scenario. However, most of the multiplayer settings can be overridden in the prestart event.&lt;br /&gt;
&lt;br /&gt;
Use a macro like this to force a side to have a particular type of leader.&lt;br /&gt;
 #define MP_SIDE SIDENO TYPE DESC&lt;br /&gt;
         [store_unit]&lt;br /&gt;
         variable=oldunit&lt;br /&gt;
         kill=yes&lt;br /&gt;
                 [filter]&lt;br /&gt;
                 side={SIDENO}&lt;br /&gt;
                 [/filter]&lt;br /&gt;
         [/store_unit]&lt;br /&gt;
 &lt;br /&gt;
         [unit]&lt;br /&gt;
         type={TYPE}&lt;br /&gt;
         description={DESC}&lt;br /&gt;
         unrenameable=yes&lt;br /&gt;
         side={SIDENO}&lt;br /&gt;
         x,y=$oldunit.x,$oldunit.y&lt;br /&gt;
         canrecruit=1&lt;br /&gt;
         [/unit]&lt;br /&gt;
 &lt;br /&gt;
         [clear_variable]&lt;br /&gt;
         name=oldunit&lt;br /&gt;
         [/clear_variable]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Other useful tags include [set_recruit], [modify_side], [modify_turns] and [remove_shroud]. There is currently no way to remove fog. You might also want to use ''experience_modifier=100'' in the [multiplayer] tag.&lt;br /&gt;
&lt;br /&gt;
=== Custom units ===&lt;br /&gt;
&lt;br /&gt;
Since there is no [campaign] tag, there is no natural way to include custom units in a multiplayer campaign. However, there are two workarounds. One way is to use [[EffectWML]] or [store_unit] to modify a mainline unit. The other way is to make your custom units available via an [[EraWML|era]], or by dropping them into ~wesnoth/data/units. If you go this route, using an era is better, because you can keep the units in your campaign directory.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.wesnoth.org/forum/viewtopic.php?t=11349 Multiplayer Campaigns HOWTO forum post]&lt;br /&gt;
* [[BuildingScenarios]]&lt;br /&gt;
* [[BuildingMultiplayer]]&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Create&amp;diff=11011</id>
		<title>Create</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Create&amp;diff=11011"/>
		<updated>2006-08-03T06:13:52Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* What can I create, and how? */ - Added link to MultiplayerCampaigns&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
__TOC__&lt;br /&gt;
|}&lt;br /&gt;
Interested in creating your own scenarios and campaigns?  One of Wesnoth's best features is its extensibility.  Players can create new maps, units, races, scenarios, art, music, and even entire campaigns.  Access to the &amp;quot;guts&amp;quot; of the game is both simple and difficult; if you have an ASCII text editor you have everything you need to build your own world.  However, learning the Wesnoth Markup Language (WML) takes some effort.  This section will guide you through the process of creating and distributing your own content.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that '''we need a lot of help creating artwork for the core of the game.'''  The current projects we are working on are [http://www.wesnoth.org/forum/viewtopic.php?t=9162 listed here].  We'll happily help you out, if you take a swing at them.&lt;br /&gt;
&lt;br /&gt;
== Read this first! ==&lt;br /&gt;
Before you modify or add anything, it is important to understand how the game stores and organizes its data.  This article will explain the game's directory structure and introduce the ''userdata'' directory.&lt;br /&gt;
* [[EditingWesnoth]]&lt;br /&gt;
&lt;br /&gt;
== What can I create, and how? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
[http://www.wesnoth.org/images/sshots/wesnoth_editor-1.jpg http://www.wesnoth.org/images/sshots/wesnoth_editor-1-175.jpg]&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;Battle for Wesnoth Map editor&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[BuildingMaps|Maps]] - the layout of terrain tiles&lt;br /&gt;
* [[BuildingScenarios|Scenarios]] - a scenario makes things happen on a map, making it playable&lt;br /&gt;
* [[BuildingCampaigns|Campaigns]] - how to put it all together into a campaign&lt;br /&gt;
* [[BuildingMultiplayer|Multiplayer Maps and Scenarios]] - a specialized look at maps and scenarios&lt;br /&gt;
* [[MultiplayerCampaigns|Multiplayer Campaigns]] - making a campaign accessible in multiplayer&lt;br /&gt;
* [[BuildingUnits|Units]]&lt;br /&gt;
* [[BuildingFactions|Multiplayer factions and eras]]&lt;br /&gt;
* '''[[Create Art|Art]]''' - complete with '''tutorials!'''&lt;br /&gt;
* [[Create Music|Music]]&lt;br /&gt;
* [[Distributing content]] - all about the campaign server&lt;br /&gt;
* [[WesnothTranslations|Translations]] - work on translating Wesnoth&lt;br /&gt;
&lt;br /&gt;
== What have others done? ==&lt;br /&gt;
Quick descriptions of the campaigns and scenarios that have been published on the campaign server.&lt;br /&gt;
* [[UserScenarios|User contributed campaigns]]&lt;br /&gt;
This there are a multitude multiplayer maps and discussion of the campaigns on the [http://www.wesnoth.org/forum Wesnoth forum]&lt;br /&gt;
* [http://www.wesnoth.org/forum/viewforum.php?f=15 Multiplayer development forum]&lt;br /&gt;
* [http://www.wesnoth.org/forum/viewforum.php?f=8 Scenario and campaign development forum]&lt;br /&gt;
* [[Complete Faction List (unfinished)|Complete Faction List]]&lt;br /&gt;
&lt;br /&gt;
== The world of Wesnoth ==&lt;br /&gt;
Many campaigns do not take place in Wesnoth, but many do.  There is definitely a certain flavor to campaigns that are intended to take place somewhere in the world of Wesnoth.  Stake out a time period or a map locale and tell a story.&lt;br /&gt;
* [[WesnothHistory|The history of Wesnoth]]&lt;br /&gt;
* [[WesnothGeography|The geography of Wesnoth]]&lt;br /&gt;
* [[RaceDescriptions|The races of creatures in Wesnoth]]&lt;br /&gt;
* [[WesnothPoetry|Wesnothian poetry]]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* [[ExternalUtilities| External Utilities]] - some extra tools for easier creating stuff&lt;br /&gt;
* [[ReferenceWML|WML Reference]] - a quicklink&lt;br /&gt;
* [[FAQ#Scenario_and_Campaigns|FAQ]] - if you have a question, post it&lt;br /&gt;
* Campaign server [http://wolff.to/campaigns/list.html web interface] - An alternate way to download user campaigns&lt;br /&gt;
* [[Status_of_User_Scenarios| Status of User Scenarios]] - Lists which usercampaigns are working and which ones are broken&lt;br /&gt;
{{Home}}&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=StartingPoints&amp;diff=11010</id>
		<title>StartingPoints</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=StartingPoints&amp;diff=11010"/>
		<updated>2006-08-03T06:10:05Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Tweaking the Game (Create) */ - Added topic MultiplayerCampaigns&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Battle for Wesnoth is a turn-based fantasy strategy game.&lt;br /&gt;
&lt;br /&gt;
Defeat all enemy leaders using a well-chosen cadre of troops,&lt;br /&gt;
taking care to manage your resources of gold and villages.&lt;br /&gt;
All units have their own strengths and weaknesses; to win,&lt;br /&gt;
deploy your forces to their best advantage while&lt;br /&gt;
denying your foes the chance to do the same. As units gain&lt;br /&gt;
experience, they acquire new abilities and become more&lt;br /&gt;
powerful. Play in your own language and test your skill&lt;br /&gt;
against a smart computer opponent, or join Wesnoth's large&lt;br /&gt;
community of on-line players.&lt;br /&gt;
Create your own custom units, scenarios or campaigns,&lt;br /&gt;
and share them with others.&lt;br /&gt;
&lt;br /&gt;
Battle for Wesnoth is released under the&lt;br /&gt;
[http://www.gnu.org/licenses/licenses.html#GPL GPL].&lt;br /&gt;
Prebuilt packages are available for most operating systems,&lt;br /&gt;
including Windows, Mac OS X, and GNU/Linux, or you can build&lt;br /&gt;
your own from source code.&lt;br /&gt;
&lt;br /&gt;
== Getting the Game ==&lt;br /&gt;
==== Downloading ====&lt;br /&gt;
* [[Download]] - get the most recent source-files and many binaries&lt;br /&gt;
** [[WesnothBinaries]] - precompiled for GNU/Linux, BeOS, PDAs, ...&lt;br /&gt;
** [[WesnothBinariesLinux]] - precompiled for many GNU/Linux distributions&lt;br /&gt;
&lt;br /&gt;
==== Compiling ====&lt;br /&gt;
* [[CompilingWesnoth]] - on Unix, Mac, Windows, GNU/Linux, PDAs, ...&lt;br /&gt;
* [[DebuggingWesnoth]] - on GNU/Linux and Unix-like systems&lt;br /&gt;
* [[WesnothOnLinuxPDAs]] - on the Qtopia/OPIE and thepdaXrom/Zaurus C series&lt;br /&gt;
&lt;br /&gt;
== Playing the Game ([[Play]]) ==&lt;br /&gt;
&lt;br /&gt;
==== For New Players ====&lt;br /&gt;
* [[GettingStarted]] - read me first!&lt;br /&gt;
* [[WesnothManual]] - the rules&lt;br /&gt;
* [[MainlineScenarios]] - walkthroughs for the game-supplied campaigns&lt;br /&gt;
&lt;br /&gt;
==== For Not-So-New Players ====&lt;br /&gt;
* [[AdvancedTactics]] - beating the AI and other people&lt;br /&gt;
* [[MultiplayerServers]] - where to play against other people online&lt;br /&gt;
&lt;br /&gt;
==== Reference ====&lt;br /&gt;
* [[HotKeysSystem]] - keyboard shortcuts&lt;br /&gt;
* [[CommandMode]] - commands you can use in-game&lt;br /&gt;
* [[ServerAdministration]] - commands that authenticated users can use to administer the server&lt;br /&gt;
* [http://wesnoth.slack.it/units.cgi Units] - Units advancement trees and stats&lt;br /&gt;
** [http://wesnoth.slack.it/units.cgi?page=frames Wesnoth Unit List] ([http://wesnoth.slack.it/units.cgi?page=list without frames])&lt;br /&gt;
** [http://wesnoth.slack.it/units.cgi?movetypes Movement, defense and resistance tables]&lt;br /&gt;
* [[RaceDescriptions]] - Elves, Humans, Dwarves, Orcs, Drakes, Undead, Others&lt;br /&gt;
** [[Complete_Faction_List_%28unfinished%29]] - list all user made factions&lt;br /&gt;
* [[WesnothAcronyms|Wesnoth Acronyms (by category)]] - common wesnothian acronyms explained&lt;br /&gt;
* [[WesnothAcronyms(alphabetic)|Wesnoth Acronyms (alphabetic)]] - common wesnothian acronyms explained&lt;br /&gt;
&lt;br /&gt;
== Tweaking the Game ([[Create]]) ==&lt;br /&gt;
&lt;br /&gt;
* [[UserScenarios]] - user-written scenarios, campaigns and game modifications&lt;br /&gt;
* [[ReferenceWML]] and [[AlphabeticalWML]] - all about Wesnoth Markup Language&lt;br /&gt;
* [[ReferencePythonAPI]] - upcoming Python interface for AI&lt;br /&gt;
* [[BuildingCampaigns]] - how to make your own single player campaigns&lt;br /&gt;
* [[MultiplayerCampaigns]] - how to make your own multiplayer campaigns&lt;br /&gt;
* [[BuildingScenarios]] - how to make your own scenarios&lt;br /&gt;
* [[BuildingUnits]] - how to make your own units&lt;br /&gt;
* [[UnitAnalysis]] - tool to analyze units&lt;br /&gt;
* [[WesnothMapEditor]] - summary of controls&lt;br /&gt;
* [[ExternalUtilities]] - scripts to help create scenarios, campaigns, and graphics&lt;br /&gt;
* [[Create_Art#Art_Tutorials|Art Tutorials]] - help in creating art&lt;br /&gt;
* [[GraphicLibrary]] - unit and terrain images posted on the forums&lt;br /&gt;
* [[Tiles_Status]] - terrain tiles: proposed and in progress.&lt;br /&gt;
&lt;br /&gt;
== Improving the Game ==&lt;br /&gt;
* [[ReportingBugs]] - use Gna&lt;br /&gt;
* To submit a feature request, use http://bugs.wesnoth.org&lt;br /&gt;
* [[FrequentlyProposedIdeas]] - before you propose an idea, check here!&lt;br /&gt;
==== Developer information ====&lt;br /&gt;
* [[DeveloperResources]] - useful links&lt;br /&gt;
* [http://changelog.wesnoth.org Changelog] - the most recent changes made to the game&lt;br /&gt;
* [[WesnothSVN]] - accessing the source code&lt;br /&gt;
* [[HackingWesnoth]] - guide for programmers&lt;br /&gt;
* [[CodingStandards]] - for programmers&lt;br /&gt;
* [[UnitDescriptionRewriting]] - coordinating the revision&lt;br /&gt;
* [http://wesnoth.slack.it/missing.cgi Missing unit animations and sounds] - what's available and what's missing&lt;br /&gt;
* [[WritingYourOwnAI]] - write a C++ plugin&lt;br /&gt;
* [[ThemeSystem]] - customizing the screen layout for the game and the editor&lt;br /&gt;
* [[ReleasingWesnoth]] - steps to follow to release a new version&lt;br /&gt;
* [[WesnothPackagersGuide]] - guidelines for packaging Wesnoth for different platforms&lt;br /&gt;
* [[WesnothPreferences]]&lt;br /&gt;
&lt;br /&gt;
==== Game translations ====&lt;br /&gt;
* [[GettextForTranslators]] - how to translate Wesnoth under [[GetText]]&lt;br /&gt;
* [[WesnothTranslations]] - 11 complete, 2 almost complete, 7 more than halfway, 10 partial&lt;br /&gt;
* [[WesCamp]] - a project for translating user-made campaigns&lt;br /&gt;
&lt;br /&gt;
== About the Game ==&lt;br /&gt;
* [[WesnothPhilosophy]] - Dave on Wesnoth&lt;br /&gt;
* [[WesnothHistory]] - the Ages of Wesnoth&lt;br /&gt;
* [[WesnothGeography]] - description of Wesnoth and surrounding lands&lt;br /&gt;
* [[WesnothReviews]] - third party reviews of Wesnoth&lt;br /&gt;
* [irc://irc.wesnoth.org/wesnoth #wesnoth] - our IRC channel&lt;br /&gt;
* [[Donate]] or [http://cafepress.com/wesnoth buy Wesnoth merchandise].&lt;br /&gt;
* [[Trailer]] - the Wesnoth trailer&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
* [[UsefulLinks]]&lt;br /&gt;
* [[WesnothLSM]] - presentation at LSM&lt;br /&gt;
* [http://wesnoth.slack.it/?WesnothPlayerMap Map of Wesnoth player locations] - add yourself to the map!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Battle_for_Wesnoth Wikipedia entry for Wesnoth]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About this Wiki ==&lt;br /&gt;
* [[Help:Editing|Editing]] - learn how to edit pages&lt;br /&gt;
* [[Sandbox]] - experiment with the wiki&lt;br /&gt;
* [[WikiMigration]] - we were looking for a replacement for our old wiki (and ended up using Mediawiki)&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=MultiplayerContent&amp;diff=11009</id>
		<title>MultiplayerContent</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=MultiplayerContent&amp;diff=11009"/>
		<updated>2006-08-03T06:03:51Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: New page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Building multiplayer campaigns ==&lt;br /&gt;
&lt;br /&gt;
Recent versions of wesnoth (which ones?) have support for campaigns that can be played in multiplayer mode, with your friends, or even with an AI. The support is pretty basic at this point, so there will be some things that don't work as expected. This page only documents the differences between writing multiplayer campaigns and single player campaigns, so you might want to read up on [[BuildingCampaigns]] and [[BuildingMultiplayer]] first.&lt;br /&gt;
&lt;br /&gt;
=== The campaign file ===&lt;br /&gt;
&lt;br /&gt;
Multiplayer campaigns do not use the [campaign] tag. As a result of this, multiplayer campaigns only support one difficulty level, though you could support more with enough WML, if you're feeling ambitious. The &amp;quot;campaign file&amp;quot; should look something like this:&lt;br /&gt;
&lt;br /&gt;
 #ifdef MULTIPLAYER&lt;br /&gt;
 {@campaigns/My_Campaign/scenarios}&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
Anything that you would normally put in the campaign tag now goes into the first scenario, if it's supported there. The order of scenarios is determined by next_scenario tags, just like in single player.&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
A scenario in a multiplayer campaign is almost identical to a scenario in a single player campaign. You only need to change the following:&lt;br /&gt;
&lt;br /&gt;
* The [scenario] tag should be replaced with a [multiplayer] tag.&lt;br /&gt;
* Every scenario after the first should have '''allow_new_game=no''' inside the [multiplayer] tag. This will prevent it from showing up in the map selection menu. ''This does not work in v1.1'', but it causes no harm, and it will work in the future.&lt;br /&gt;
* In v1.1, Every scenario in the campaign will appear on the map selection menu, so be sure to include your campaign's name in the [multiplayer] tag's name key. Alternatively, include a warning like &amp;quot;DO NOT PLAY&amp;quot;.&lt;br /&gt;
* Each human-controlled side needs to have a '''save_id''' defined inside their [side] tag. Each side's save_id should be unique, and it should be the same in every scenario. Without this, your recall lists and leaders will not carry over from one scenario to the next.&lt;br /&gt;
* Each AI-controlled side should have '''allow_player=no''' in their [side] tag.&lt;br /&gt;
&lt;br /&gt;
=== The first scenario ===&lt;br /&gt;
&lt;br /&gt;
The first scenario might need some extra work, because the settings from the multiplayer dialog will override the settings in the scenario. However, most of the multiplayer settings can be overridden in the prestart event.&lt;br /&gt;
&lt;br /&gt;
Use a macro like this to force a side to have a particular type of leader.&lt;br /&gt;
 #define MP_SIDE SIDENO TYPE DESC&lt;br /&gt;
         [store_unit]&lt;br /&gt;
         variable=oldunit&lt;br /&gt;
         kill=yes&lt;br /&gt;
                 [filter]&lt;br /&gt;
                 side={SIDENO}&lt;br /&gt;
                 [/filter]&lt;br /&gt;
         [/store_unit]&lt;br /&gt;
 &lt;br /&gt;
         [unit]&lt;br /&gt;
         type={TYPE}&lt;br /&gt;
         description={DESC}&lt;br /&gt;
         unrenameable=yes&lt;br /&gt;
         side={SIDENO}&lt;br /&gt;
         x,y=$oldunit.x,$oldunit.y&lt;br /&gt;
         canrecruit=1&lt;br /&gt;
         [/unit]&lt;br /&gt;
 &lt;br /&gt;
         [clear_variable]&lt;br /&gt;
         name=oldunit&lt;br /&gt;
         [/clear_variable]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Other useful tags include [set_recruit], [modify_side], [modify_turns] and [remove_shroud]. There is currently no way to remove fog. You might also want to use ''experience_modifier=100'' in the [multiplayer] tag.&lt;br /&gt;
&lt;br /&gt;
=== Custom units ===&lt;br /&gt;
&lt;br /&gt;
Since there is no [campaign] tag, there is no natural way to include custom units in a multiplayer campaign. However, there are two workarounds. One way is to use [[EffectWML]] or [store_unit] to modify a mainline unit. The other way is to make your custom units available via an [[EraWML|era]], or by dropping them into ~wesnoth/data/units. If you go this route, using an era is better, because you can keep the units in your campaign directory.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.wesnoth.org/forum/viewtopic.php?t=11349 Multiplayer Campaigns HOWTO forum post]&lt;br /&gt;
* [[BuildingScenarios]]&lt;br /&gt;
* [[BuildingMultiplayer]]&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=10827</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=10827"/>
		<updated>2006-07-25T22:59:13Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: Added [specials]&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;
[[AbilitiesWMLTechnical1.1.3|abilities]],&lt;br /&gt;
[[CampaignWML#The_.5Babout.5D_tag|about]],&lt;br /&gt;
[[StatisticalScenarioWML|advances]],&lt;br /&gt;
[[UnitWML|advancefrom]],&lt;br /&gt;
[[AiWML|ai]],&lt;br /&gt;
[[DirectActionsWML|allow_recruit]],&lt;br /&gt;
[[VariablesWML|array]],&lt;br /&gt;
[[AttackWML|attack]],&lt;br /&gt;
[[StatisticalScenarioWML|attacks]],&lt;br /&gt;
[[AiWML|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[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;
[[StatisticalScenarioWML|deaths]],[[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;
[[UnitsWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],&lt;br /&gt;
[[DirectActionsWML|endlevel]],&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_second]], [[HelpWML|format]], [[AttackWML|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]], [[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]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[HelpWML|jump]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[ThemeWML|label]], [[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;
[[AttackWML|missile_frame]], [[SingleUnitWML|modifications]], [[DirectActionsWML|modify_side]],&lt;br /&gt;
[[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;
[[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]], [[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]], [[HelpWML|section]], [[DirectActionsWML|set_recruit]],&lt;br /&gt;
[[InternalActionsWML|set_variable]], [[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML|sound]], [[ReplayWML|source]], [[AbilitiesWMLTechnical1.1.3|specials]]&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_starting_location]], [[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;
[[TerrainWML|terrain]], [[DirectActionsWML|terrain]], [[TerrainGraphicsWML|terrain_graphics]], [[ScenarioWML#Test_scenario|test]],&lt;br /&gt;
[[CampaignWML#The_.5Btextdomain.5D_tag|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]],&lt;br /&gt;
[[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]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=UnitTypeWML&amp;diff=10825</id>
		<title>UnitTypeWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=UnitTypeWML&amp;diff=10825"/>
		<updated>2006-07-25T17:33:12Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: /* Attacks */ added [abilities] tag and changed title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== The [unit] tag ==&lt;br /&gt;
&lt;br /&gt;
Each '''[unit]''' tag defines one unit type. (for the use of [unit] to create a unit, see [[SingleUnitWML]])&lt;br /&gt;
&lt;br /&gt;
Unit animation syntax is described in [[AnimationWML]].&lt;br /&gt;
&lt;br /&gt;
The following key/tags are recognized:&lt;br /&gt;
{| class=&amp;quot;gallery&amp;quot; style=&amp;quot;text-align:left;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! [[ability]]&lt;br /&gt;
| a list of the unit's abilities. See [[AbilitiesWML]] for a description of abilities.&lt;br /&gt;
|-&lt;br /&gt;
! [[advancefrom]]&lt;br /&gt;
| allows a campaign-specific unit to be spliced into an already existing advancement tree.  It should generally be used only inside a campaign ifdef, to prevent changes to other campaigns.  This tag makes changes to the ''advanceto'' and ''experience'' keys of a base unit to make it advance into this unit.  It takes these keys:&amp;lt;br&amp;gt; ** ''unit'' the id of the base unit from which this unit advances.  This adds the unit into the list of units which ''unit'' can advance into.&amp;lt;br&amp;gt;** [[experience]] is optional.  If present and lower than the experience already required for the base unit to advance, then the experience to advance is lowered.  Note: this will also lower the experience required to advance to other units which the base unit can advance into.&lt;br /&gt;
|-&lt;br /&gt;
! [[advanceto]]&lt;br /&gt;
| When this unit has experience greater than or equal to [[experience]], it is replaced by a unit with 0 experience of the type that the value of [[advanceto]] refers to. All modifications that have been done to the unit are applied to the unit it is replaced by.&lt;br /&gt;
|-&lt;br /&gt;
! alignment&lt;br /&gt;
| how the unit's damage should be affected by its lawful bonus (See [[TimeWML]]).&lt;br /&gt;
|-&lt;br /&gt;
! cost&lt;br /&gt;
| when a player recruits a unit of this type, the player loses ''cost'' gold. If this would cause gold to drop below 0,  the unit cannot be recruited.&lt;br /&gt;
|-&lt;br /&gt;
! experience&lt;br /&gt;
| When this unit has experience greater than or equal to ''experience'', it is replaced by a unit with 0 experience of the type that the value of ''advanceto'' refers to. All modifications that have been done to the unit are applied to the unit it is replaced by.&lt;br /&gt;
|-&lt;br /&gt;
! gender&lt;br /&gt;
| has a value of either ''male'' or ''female'', and determines which of the keys ''male_names'' and ''female_names''  should be read. When a unit of this type is recruited, it will be randomly assigned a name by the random name generator, which will use these names as a base.&lt;br /&gt;
|-&lt;br /&gt;
! hitpoints&lt;br /&gt;
| the maximum HP that the unit has, and the HP it has when it is created.&lt;br /&gt;
|-&lt;br /&gt;
! id&lt;br /&gt;
|the value of the ''type'' key for units of this type. An ''id'' should consist only of alphanumerics and underscores. ''type'' keys are found in [[SingleUnitWML]] and [[FilterWML]].&lt;br /&gt;
|-&lt;br /&gt;
! level&lt;br /&gt;
| the amount of upkeep the unit costs.  After this unit fights, its opponent gains ''level'' experience. See also kill_experience ([[GameConfigWML]]), and leadership ([[AbilitiesWML]]).&lt;br /&gt;
|-&lt;br /&gt;
! movement&lt;br /&gt;
| the number of move points that this unit recieves each turn.&lt;br /&gt;
|-&lt;br /&gt;
! movetype&lt;br /&gt;
| See '''[[movetype]]''', [[UnitsWML]]. Note that the tags '''[[movement_costs]]''', '''[[defense]]''', and '''[[resistance]]''' can be used to modify this movetype.&lt;br /&gt;
|-&lt;br /&gt;
! name&lt;br /&gt;
|(translatable) displayed in the Status Table for units of this type.&lt;br /&gt;
|-&lt;br /&gt;
! num_traits&lt;br /&gt;
| the number of traits that units of this type should receive when they are recruited, overriding the value set in the [race] tag.&lt;br /&gt;
|-&lt;br /&gt;
! profile&lt;br /&gt;
| the portrait image to use for this unit type. {{DevFeature}}You can also set a portrait for an individual unit instead of the whole unit type (see [[SingleUnitWML]]).&lt;br /&gt;
|-&lt;br /&gt;
! race&lt;br /&gt;
| See '''[race]''', [[UnitsWML]].  Also used in standard unit filter (see [[FilterWML]]).&lt;br /&gt;
|-&lt;br /&gt;
! unit_description&lt;br /&gt;
| (translatable) the text displayed in the unit descriptor box for this unit. Default 'No description available...'.&lt;br /&gt;
|-&lt;br /&gt;
! undead_variation&lt;br /&gt;
| Which image to use when a unit of this type is killed by a unit with the plague ability.&lt;br /&gt;
|-&lt;br /&gt;
! usage&lt;br /&gt;
| the way that the AI should recruit this unit, as determined by the scenario designer. (See ''recruitment_pattern'', [[AiWML]]).  The following are conventions on usage:&amp;lt;br&amp;gt; ** 'scout' Fast,&amp;lt;br&amp;gt; ** 'fighter' Melee fighter,&amp;lt;br&amp;gt; ** 'archer' Ranged fighter,&amp;lt;br&amp;gt; ** 'mixed fighter' Melee and ranged fighter, and&amp;lt;br&amp;gt; ** 'healer' Specialty 'heals' or 'cures'.&lt;br /&gt;
|-&lt;br /&gt;
! zoc&lt;br /&gt;
| {{DevFeature}} if &amp;quot;yes&amp;quot; the unit will have a zone of control regardless of level.  If present but set to anything other than &amp;quot;yes,&amp;quot; the unit will have no zone of control.  If the tag is omitted, zone of control is dictated by unit level (level 0 = no zoc, level 1+ = has zoc).&lt;br /&gt;
|}&lt;br /&gt;
==== After max level advancement (AMLA) ====&lt;br /&gt;
* '''[advancement]''' describes what happens to a unit when it reaches the XP required for advancement.  It is considered as an advancement in the same way as advancement described by ''advanceto''; however, if the player chooses this advancement, the unit will have one or more effects applied to it instead of advancing.&lt;br /&gt;
** ''id'' normal internationalization id.&lt;br /&gt;
** ''description'' a description (see [[DescriptionWML]]) displayed as the option for this advancement if there is another advancement option that the player must choose from; otherwise, the advancement is chosen automatically and this key is irrelevant.&lt;br /&gt;
** ''max_times'' default 1.  The maximum times the unit can be awarded this advancement.&lt;br /&gt;
** ''strict_amla'' {{DevFeature}} (yes|no) default=no. Disable the AMLA if the unit can advance to another unit.&lt;br /&gt;
** ''require_amla'' {{DevFeature}} An optional list of AMLA ''id'' keys that act as prerequisites for this advancement to become available.  Order is not important, and an AMLA id can be repeated any number of times to indicate that another advancement must be chosen several times before this advancement option will become available.&lt;br /&gt;
*** example: ''require_amla=tough,tough,incr_damage'' assumes there exist other [advancement] options called ''id=tough'' and ''id=incr_damage''.  Once ''tough'' is chosen twice and ''incr_damage'' is chosen once, then the current [advancement] will become available.&lt;br /&gt;
*** ''require_amla=tough,incr_damage,tough'' is an equivalent way of expressing this.&lt;br /&gt;
** '''[effect]''' A modification applied to the unit whenever this advancement is chosen.  See [[EffectWML]]&lt;br /&gt;
&lt;br /&gt;
==== Other tags ====&lt;br /&gt;
* '''[attack]''' one of the unit's attacks.&lt;br /&gt;
** ''description'' a translatable text for name of the attack, to be displayed to the user.&lt;br /&gt;
** ''name'' the name of the attack. Used as a default description, if ''description'' is not present, and to determine the default icon, if ''icon'' is not present (if ''name=x'' then ''icon=attacks/x.png'' is assumed unless present).  Non-translatable.  Used for the ''has_weapon'' key; see [[FilterWML]]&lt;br /&gt;
** ''type'' the damage type of the attack.  Used in determining resistance to this attack (see '''[resistances]''', [[UnitWML]]).  Possible values are 'blade', 'pierce', 'impact', 'fire', 'cold', and 'holy'.&lt;br /&gt;
** ''special'' the special ability of the attack.  Currently having more than 1 ability is not supported.  See [[AbilitiesWML]] for a list of possible values.&lt;br /&gt;
** ''icon'' the image to use as an icon for the attack in the attack choice menu, as a path relative to the images directory.&lt;br /&gt;
** ''range'' the range of the attack.  Used to determine the enemy's retaliation, which will be of the same type.  Also displayed on the status table in parentheses; 'short'(default) displays &amp;quot;melee&amp;quot;, while 'long' displays &amp;quot;ranged&amp;quot;. {{DevFeature}}: range can be anything. Standard values are now &amp;quot;melee&amp;quot; and &amp;quot;ranged&amp;quot;. From now on, ''short'' and ''long'' will be treated as totally different ranges. You can create any number of ranges now (with any name), and units can only retaliate against attacks for which they have a corresponding attack of the same range. This value is translatable.&lt;br /&gt;
** ''damage'' the damage of this attack&lt;br /&gt;
** ''number'' the number of strikes per attack this weapon has&lt;br /&gt;
For those two following settings, the engine usually chooses the attack with the best average total damages * weight (default weight = 1.0).&lt;br /&gt;
** ''attack_weight'' helps the AI to choose which attack to use when attacking; highly weighted attacks are more likely to be used. {{DevFeature}}: Setting it to 0 disables the attack on attack&lt;br /&gt;
** ''defense_weight'' used to determine which attack is used for retaliation. This affects gameplay, as the player is not allowed to determine his unit's retaliation weapon. {{DevFeature}}: Setting it to 0 disable the attacks on defense &lt;br /&gt;
&lt;br /&gt;
** '''[animation]'''&lt;br /&gt;
:: This describes an animation for this attack. If multiple animations are present, one will be randomly chosen each time the unit attacks. See [[AnimationWML]] for possible keys.&lt;br /&gt;
&lt;br /&gt;
* '''[defend]''' See [[AnimationWML]]&lt;br /&gt;
* '''[death]''' See [[AnimationWML]]&lt;br /&gt;
* '''[teleport_anim]''' See [[AnimationWML]]&lt;br /&gt;
* '''[extra_anim]''' See [[AnimationWML]]&lt;br /&gt;
* '''[event]''' {{DevFeature}} Any [event] written inside the [unit] tag will get included into any scenario where a unit of this type appears in. Note that such events get included when a unit of this type first appears in the scenario, not automatically when the scenario begins (meaning that ''name=prestart'' events, for example, would usually never trigger). See [[EventWML]] and [[WML_Abilities]]&lt;br /&gt;
&lt;br /&gt;
* '''[variation]''' Defines a variation of a unit. Variations are invoked with an [effect] tag. They are currently used for graphical variations (giving character sprites new weapons) but theoretically you could do anything with it.&lt;br /&gt;
** ''variation_name'' The name of the variation.&lt;br /&gt;
: All other keys in '''[variation]''' are the same as for '''[unit]''' itself.&lt;br /&gt;
&lt;br /&gt;
* '''[male]''', '''[female]''' They can contain all '''[unit]''' tags, to specify a variation of different gender for a unit.&lt;br /&gt;
&lt;br /&gt;
* '''[abilities]''' {{DevFeature}} Defines the abilities of a unit. See [[AbilitiesWMLTechnical1.1.3]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[AnimationWML]]&lt;br /&gt;
* [[AnimationWML1.1]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
* [[TerrainWML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=10824</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=10824"/>
		<updated>2006-07-25T17:18:52Z</updated>

		<summary type="html">&lt;p&gt;NeoPhile: Added [abilities] tag&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;
[[AbilitiesWMLTechnical1.1.3|abilities]],&lt;br /&gt;
[[CampaignWML#The_.5Babout.5D_tag|about]],&lt;br /&gt;
[[StatisticalScenarioWML|advances]],&lt;br /&gt;
[[UnitWML|advancefrom]],&lt;br /&gt;
[[AiWML|ai]],&lt;br /&gt;
[[DirectActionsWML|allow_recruit]],&lt;br /&gt;
[[VariablesWML|array]],&lt;br /&gt;
[[AttackWML|attack]],&lt;br /&gt;
[[StatisticalScenarioWML|attacks]],&lt;br /&gt;
[[AiWML|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[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;
[[StatisticalScenarioWML|deaths]],[[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;
[[UnitsWML|effect]],[[InternalActionsWML|else]],[[ReplayWML|end_turn]],&lt;br /&gt;
[[DirectActionsWML|endlevel]],&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_second]], [[HelpWML|format]], [[AttackWML|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]], [[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]], [[HelpWML|italic]], [[InterfaceActionsWML|item]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[HelpWML|jump]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML|kill]], [[StatisticalScenarioWML|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[ThemeWML|label]], [[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;
[[AttackWML|missile_frame]], [[SingleUnitWML|modifications]], [[DirectActionsWML|modify_side]],&lt;br /&gt;
[[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;
[[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]], [[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]], [[HelpWML|section]], [[DirectActionsWML|set_recruit]],&lt;br /&gt;
[[InternalActionsWML|set_variable]], [[SideWML|side]], [[ThemeWML|side_playing]], [[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML|sound]], [[ReplayWML|source]],&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_starting_location]], [[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;
[[TerrainWML|terrain]], [[DirectActionsWML|terrain]], [[TerrainGraphicsWML|terrain_graphics]], [[ScenarioWML#Test_scenario|test]],&lt;br /&gt;
[[CampaignWML#The_.5Btextdomain.5D_tag|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]],&lt;br /&gt;
[[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]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NeoPhile</name></author>
		
	</entry>
</feed>