<?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=Pyrophorus</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=Pyrophorus"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Pyrophorus"/>
	<updated>2026-05-22T04:26:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=VariablesWML/How_to_use_variables&amp;diff=52647</id>
		<title>VariablesWML/How to use variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=VariablesWML/How_to_use_variables&amp;diff=52647"/>
		<updated>2013-12-10T09:49:58Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Dynamic code with insert_tag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Variables HowTo (or Descent into Darkness) ==&lt;br /&gt;
In this document, we shall try to explain WML variables and their use with some details.   We’ll start under the burning sun of lawful ordinary use, but, step by step, we shall go deeper   in the shadows of necromancy, exploring undocumented features and hidden pits as we may.   The first part should be understandable by any beginner, but the last one most probably   requires a good WML understanding.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Under the burning sun&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Variable definitions&amp;lt;/u&amp;gt; ====&lt;br /&gt;
This section and the next one can be skipped if you already know what variables are and how   to use them.   Variables are some kind of container a programmer can use to store pieces of information   (s)he needs to manipulate : numbers, names, sentences, and anything else. In most   programming languages, variables must be declared before they can be used. Declaration is an   instruction giving a name (used later to refer to the variable) and a type, which defines the   kind of content of the variable (number, characters strings, and so on).   Later in the program, instructions can be used to store and retrieve the content of the   container, which is most often called the value of the variable.   In WML, variables need no declaration and their value have no precise type&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;. This means a   new variable will be created at the first time the programmer stores something in it. And that   (s)he can store anything in it.   Variables use memory, so it’s good practice to clear them when they’re not needed anymore.&lt;br /&gt;
Variables names are freely chosen by the programmer with some restrictions. They should not be the name of a language instruction (keyword) or operator. In WML, you can use quite any name or sentence to name a variable, but you shouldn’t if you want to shun subtle problems. A classical rule is :&lt;br /&gt;
:  - variable name should begin with a letter&lt;br /&gt;
:  - variable names should only contain letters (not accented) and numbers and the   underscore _ character.&lt;br /&gt;
No spaces, no accented letters, no special characters, no minus and plus signs, etc…   Those names are always safe and correctly interpreted by the engine as variables names. Note that some special characters are forbidden in variable names: '''$ , . | {} [] =''' because they have a special meaning we shall see later. I would strongly suggest to avoid common tags names like “event” “side” and too long names like:&lt;br /&gt;
: “name_of_the_guy_who_killed_the_orc_on_last_turn” which is not the same as:&lt;br /&gt;
: “name_of_the_gyu_who_killed_the_orc_on_last_turn”, but it’s not really obvious at first glance.&lt;br /&gt;
It’s a common error to type wrongly a variable name: in WML this don’t rise any   error message, but the variable will have no value, giving most probably what you don’t expect. Last but not least, variables names are case sensitive: in other words, ‘aVar’ is not the same as ‘avar’.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Variables creation and manipulation&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Even if WML variables contents have no precise types.[[In computering words, they are not '''strongly typed.'''|&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;]], we shall discuss two kinds:&lt;br /&gt;
: - variables holding a single value, like a number, a character string&lt;br /&gt;
: - variables holding a compound value, i.e. a pack of single values.&lt;br /&gt;
They’re often called   containers in the documentation. Simple variables are created using the tag '''[set_variable]''':&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=36&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
The tag defines the name and the value of the variable.&lt;br /&gt;
&lt;br /&gt;
Next, we can access the variable value using the variable name prefixed with a dollar sign $.&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     [filter]&lt;br /&gt;
         id=$unit.id&lt;br /&gt;
     [/filter]&lt;br /&gt;
     moves=$simpleVariable&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This sets the moves of the unit to 36 since '''simpleVariable''' holds 36.&lt;br /&gt;
&lt;br /&gt;
When the line is   executed, the value 36 is substituted to '''$simpleVariable''', so it works as if we wrote:&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     [filter]&lt;br /&gt;
         id=$unit.id&lt;br /&gt;
     [/filter]&lt;br /&gt;
     moves=36&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
Using the same tag, we can change the value of '''simpleVariable''', or make some arithmetic   (see the tag documentation for the whole list).&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     sub=30&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
will change the value to 6 of course. We can even set the variable to another value type:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
We shall not use  '''[set_variable]''' tag anymore. Instead, we shall use the '''VARIABLE''' shortcut:&lt;br /&gt;
&lt;br /&gt;
 {VARIABLE simpleVariable &amp;quot;Delfador the Great&amp;quot;}&lt;br /&gt;
stands for:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
We shall not use the arithmetic variations of '''set_variable''' either. Instead we shall use the   '''formulaAI''' syntax which is much more natural. Instead of:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
      name=simpleVariable&lt;br /&gt;
      value=35&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
 [set_variable]&lt;br /&gt;
       name=simpleVariable&lt;br /&gt;
       add=$anotherVariable&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
we shall write:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;$(35 + $anotherVariable)&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
: # or&lt;br /&gt;
 {VARIABLE simpleVariable &amp;quot;$(35 + $anotherVariable)&amp;quot;}&lt;br /&gt;
The formulaAI syntax is easy to use, the important thing is to always put the formula in this   sequence: “'''$( …''' here comes the formula '''… )'''”&lt;br /&gt;
In other words, '''$simpleVariable''' can be written everywhere you want  to use the value of   '''simpleVariable.'''&lt;br /&gt;
Clearing variables can be done using the '''[clear_variable]''' tag:&lt;br /&gt;
 [clear_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
 [/clear_variable]&lt;br /&gt;
: # or using the following macro to delete more than one variable                                                                                      {CLEAR_VARIABLE simpleVariable,anotherOne,count} [[Please note the CLEAR_VARIABLE macro will not work if your variables names contain spaces or commas. It’s one good reason to avoid them.|&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Containers&amp;lt;/u&amp;gt; ====&lt;br /&gt;
What is a container?&lt;br /&gt;
It is a variable holding more than a simple value.&lt;br /&gt;
A good example is the unit variable created automatically in '''moveto''' and '''attack''' events. It contains the full description of a unit, not only its name and its id. Containers are useful to store related values in a pack. All these different values are called “members” of the created container. Instead of writing this:&lt;br /&gt;
 {VARIABLE heroName &amp;quot;Delfador&amp;quot;}&lt;br /&gt;
 {VARIABLE heroGold 250}&lt;br /&gt;
 {VARIABLE heroFame 127}&lt;br /&gt;
 {VARIABLE heroFullName &amp;quot;Delfador the Great&amp;quot;}&lt;br /&gt;
we can pack all this in a “hero” variable using '''[set_variables]''' (notice the ‘s’)&lt;br /&gt;
 [set_variables]&lt;br /&gt;
     name=hero&lt;br /&gt;
     [value]&lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;&lt;br /&gt;
         gold=250&lt;br /&gt;
         fame=127&lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
     [/value]&lt;br /&gt;
 [/set_variables]&lt;br /&gt;
Then, to get the values stored in the container, we shall use the $ sign as before, but appending the member name and a dot:[[That’s why dots are forbidden in variable names : they are used to specify members.|&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
 $hero.name -&amp;gt; Delfador&lt;br /&gt;
 $hero.gold -&amp;gt; 250&lt;br /&gt;
And if we want to change a value, the “gold” member for instance:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=hero.gold&lt;br /&gt;
     add=100&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
It’s important to note that here, we changed the “gold” member as if it was a single variable whose name is “'''hero.gold'''”. We can also clear a member of the container in the same way:&lt;br /&gt;
 {CLEAR_VARIABLE hero.fullName}&lt;br /&gt;
This will delete the '''fullName''' member permanently. Note it will not only clear the value, but   clear the member itself. Clearing the value would be:&lt;br /&gt;
 {VARIABLE hero.fullName &amp;quot;&amp;quot;}&lt;br /&gt;
Can we add later a member to an existing container ? Yes, it can be done:&lt;br /&gt;
 {VARIABLE hero.hasStaff yes}&lt;br /&gt;
this creates the member hasStaff and set it to yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;A glance into the pit&amp;lt;/u&amp;gt; === &lt;br /&gt;
&lt;br /&gt;
All this will be clearer if we take a look at the way variables are stored. Opening a savegame with a text editor, we should find a part like this one:&lt;br /&gt;
 [replay_start]  &lt;br /&gt;
     id=&amp;quot;&amp;quot;&lt;br /&gt;
     [variables]  &lt;br /&gt;
         damage_inflicted=18&lt;br /&gt;
         heal_amount=10  &lt;br /&gt;
         side_number=1  &lt;br /&gt;
         turn_number=26  &lt;br /&gt;
         x1=8  &lt;br /&gt;
         x2=0  &lt;br /&gt;
         y1=8  &lt;br /&gt;
         y2=0  &lt;br /&gt;
         simpleVariable=35  &lt;br /&gt;
         [hero]  &lt;br /&gt;
             name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
             gold=250  &lt;br /&gt;
             fame=127  &lt;br /&gt;
             fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
         [/hero]  &lt;br /&gt;
         ...  &lt;br /&gt;
&lt;br /&gt;
Here are our variables ! We can see simple ones are a pair name/value separated with an equal &lt;br /&gt;
sign.[[That’s why = signs are forbidden in variables names : it corrupts savegames.|&amp;lt;sup&amp;gt;4)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Container are stored in a WML block whose name is the variable name.  &lt;br /&gt;
Actually, it’s just like folders and files on your hard disk. Each name/value pair is like a file,  &lt;br /&gt;
and other tags like folders. This explains the syntax used: '''set_variable''' and '''clear_variable''' operate on name/value pairs, and you use the dot to specify the path to the line you want to create or modify, for example '''hero.name'''.&lt;br /&gt;
Using '''set_variable''' creates a line if it exists not. So we can use it to add lines to the hero &lt;br /&gt;
container using '''hero.'''something name, just as we can add a new line at the first level. &lt;br /&gt;
Now, we can understand better what a container is. It’s a WML block, just as an ordinary tag, &lt;br /&gt;
and can hold &amp;lt;u&amp;gt;any valid WML content&amp;lt;/u&amp;gt;. Look at this: &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=aVar  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=capture&lt;br /&gt;
         first_time_only=no  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             side=3  &lt;br /&gt;
             type=orc           &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         [set_variable]  &lt;br /&gt;
             name=tmp  &lt;br /&gt;
             rand=1..2  &lt;br /&gt;
         [/set_variable]  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]                    &lt;br /&gt;
This is perfectly valid and creates this container variable:  &lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=3  &lt;br /&gt;
         type=orc  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar]                                                    &lt;br /&gt;
We can modify members in the sub blocks too, using the full path to them, separated with &lt;br /&gt;
dots. For instance:&lt;br /&gt;
 {VARIABLE aVar.set_variable.rand “1..5”}  &lt;br /&gt;
or  &lt;br /&gt;
 {VARIABLE aVar.filter.side 2}.  &lt;br /&gt;
Capito ?  &lt;br /&gt;
&lt;br /&gt;
We can delete members, values or even whole blocks in the same way:  &lt;br /&gt;
 {CLEAR_VARIABLE aVar.filter.type}&lt;br /&gt;
will remove the key ‘type’ in the filter block:&lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=3  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar]  &lt;br /&gt;
  &lt;br /&gt;
 {CLEAR_VARIABLE aVar.filter } will remove the whole filter block:  &lt;br /&gt;
  &lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar] &lt;br /&gt;
This example is rather confusing because this variable looks much more like a piece of code  &lt;br /&gt;
than data (and it’s part of the content of an event, of course). But, if you want to follow us to  &lt;br /&gt;
the deeper of darkness, you should already face this ominous truth: data and code are not  &lt;br /&gt;
separated in WML, and it’s possible to modify the code with data manipulation instructions.  &lt;br /&gt;
Fortunately with some limits. Actually, you can only modify from WML what can be put into  &lt;br /&gt;
a variable: units, locations, and some code blocks, but you can’t directly access to scenario  &lt;br /&gt;
level. &lt;br /&gt;
&lt;br /&gt;
A more usual example is the unit container. '''Moveto''' events create a unit variable holding the  &lt;br /&gt;
full description of the moving unit. When pushed in your torture room (the ‘unit’ variable)  &lt;br /&gt;
you’re allowed to access any field of the unit. Exact composition of a unit block can be  &lt;br /&gt;
fetched in a savegame or with ''':inspect''' in debug mode. It’s rather complex. Here is an  &lt;br /&gt;
example (many lines have been deleted, particularly animations):&lt;br /&gt;
 [unit]  &lt;br /&gt;
     flying=yes  &lt;br /&gt;
     gender=&amp;quot;female&amp;quot;  &lt;br /&gt;
     hitpoints=26  &lt;br /&gt;
     id=&amp;quot;Lestiviel&amp;quot;  &lt;br /&gt;
     image=&amp;quot;units/elves-wood/shaman.png&amp;quot;  &lt;br /&gt;
     max_experience=26  &lt;br /&gt;
     max_hitpoints=26  &lt;br /&gt;
     max_moves=5  &lt;br /&gt;
     moves=5  &lt;br /&gt;
     name=_&amp;quot;Lestiviel&amp;quot;  &lt;br /&gt;
     overlays=&amp;quot;misc/hero-icon.png&amp;quot;  &lt;br /&gt;
     profile=&amp;quot;portraits/Lestiviel-y.png&amp;quot;  &lt;br /&gt;
     race=&amp;quot;elf&amp;quot;  &lt;br /&gt;
     [attack]  &lt;br /&gt;
         damage=3  &lt;br /&gt;
         description=_&amp;quot;staff&amp;quot;  &lt;br /&gt;
         icon=&amp;quot;attacks/druidstaff.png&amp;quot;  &lt;br /&gt;
         name=&amp;quot;staff&amp;quot;  &lt;br /&gt;
         number=2  &lt;br /&gt;
         range=&amp;quot;melee&amp;quot;  &lt;br /&gt;
         type=&amp;quot;impact&amp;quot;  &lt;br /&gt;
     [/attack]  &lt;br /&gt;
     [attack]  &lt;br /&gt;
         damage=3  &lt;br /&gt;
         description=_&amp;quot;entangle&amp;quot;  &lt;br /&gt;
         name=&amp;quot;entangle&amp;quot;  &lt;br /&gt;
         number=2  &lt;br /&gt;
         range=&amp;quot;ranged&amp;quot;  &lt;br /&gt;
         type=&amp;quot;impact&amp;quot;  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             [slow]  &lt;br /&gt;
                 description=_&amp;quot;Slow:&amp;quot;  &lt;br /&gt;
                 id=&amp;quot;slow&amp;quot;  &lt;br /&gt;
                 name=_&amp;quot;slows&amp;quot;  &lt;br /&gt;
             [/slow]  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
     [/attack]  &lt;br /&gt;
     [modifications]  &lt;br /&gt;
         [trait]  &lt;br /&gt;
             description=_&amp;quot;Zero upkeep&amp;quot;  &lt;br /&gt;
             female_name=_&amp;quot;female^loyal&amp;quot;  &lt;br /&gt;
             id=&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             male_name=_&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             [effect]  &lt;br /&gt;
                 apply_to=&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             [/effect]  &lt;br /&gt;
         [/trait]  &lt;br /&gt;
         [trait]  &lt;br /&gt;
             female_name=_&amp;quot;female^intelligent&amp;quot;  &lt;br /&gt;
             id=&amp;quot;intelligent&amp;quot;  &lt;br /&gt;
             male_name=_&amp;quot;intelligent&amp;quot;  &lt;br /&gt;
             [effect]  &lt;br /&gt;
                 apply_to=&amp;quot;max_experience&amp;quot;  &lt;br /&gt;
                 increase=&amp;quot;-20%&amp;quot;  &lt;br /&gt;
             [/effect]  &lt;br /&gt;
         [/trait]  &lt;br /&gt;
     [/modifications]  &lt;br /&gt;
 [/unit]&lt;br /&gt;
Here we have a problem: this unit has two attack blocks and two traits blocks. How can we  &lt;br /&gt;
access them ? Writing only '''$unit.attack.name''' can’t be correct since we have two blocks. We  &lt;br /&gt;
have here our first example of arrays. Arrays are lists of WML blocks sharing the same name (here '''attack''' or '''modifications.trait'''). The blocks in arrays are implicitly numbered in the &lt;br /&gt;
order they are written, and we can use this index to state which one we want:&lt;br /&gt;
&lt;br /&gt;
 $unit.attack[0].name -&amp;gt; &amp;quot;staff&amp;quot;  &lt;br /&gt;
 $unit.attack[1].name -&amp;gt; &amp;quot;entangle&amp;quot;  &lt;br /&gt;
        &lt;br /&gt;
 $unit.modifications.trait[0].id -&amp;gt; &amp;quot;loyal&amp;quot;  &lt;br /&gt;
 $unit.modifications.trait[1].id -&amp;gt; &amp;quot;intelligent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note: Indexes begins with 0. So, can we modify the value of the intelligent trait using  &lt;br /&gt;
VARIABLE ? Yes, just do it:  &lt;br /&gt;
  &lt;br /&gt;
 {VARIABLE $unit.modifications.trait[1].increase &amp;quot;-50%&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
Does this modification apply to the unit ? Not immediately. You should use '''[unstore_unit]'''  &lt;br /&gt;
first to pull them out of your torture room, and then… well, it works for some values, but not  &lt;br /&gt;
all of them. There is an automatic healing process at work and some unit properties are  &lt;br /&gt;
overwritten when '''[unstore_unit]''' happens, but the variable itself is really changed. You can  &lt;br /&gt;
verify this using ''':inspect'''.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;More with arrays&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Arrays can be created using the '''[set_variables]''' tag. In it, we can repeat the '''[value][/value]'''  &lt;br /&gt;
block at will, and this will create a container array: &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=heroes  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
         gold=250  &lt;br /&gt;
         fame=127  &lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         gold=125  &lt;br /&gt;
         fame=10  &lt;br /&gt;
         fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
         gold=1258  &lt;br /&gt;
         fame=250  &lt;br /&gt;
         fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
This will create three [heroes] blocks numbered from 0 to 2.  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
     gold=250  &lt;br /&gt;
     fame=127  &lt;br /&gt;
     fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
 [/heroes]  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
     gold=125  &lt;br /&gt;
     fame=10  &lt;br /&gt;
     fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
 [/heroes]  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
     gold=1258  &lt;br /&gt;
     fame=250  &lt;br /&gt;
     fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
 [/heroes]&lt;br /&gt;
Arrays all have a special property named '''length'''. It holds the number of blocks in the array.  &lt;br /&gt;
So here:  &lt;br /&gt;
 $heroes.length -&amp;gt; 3   &lt;br /&gt;
&lt;br /&gt;
 $unit.modifications.trait.length -&amp;gt; 2&lt;br /&gt;
(from the previous ‘unit’ example)  &lt;br /&gt;
  &lt;br /&gt;
Another way to create arrays is using '''[store_unit]''' and '''[store_locations]''' tags, or  &lt;br /&gt;
'''[set_variables]''' when using the '''split''' key to split a string.  &lt;br /&gt;
  &lt;br /&gt;
All these arrays can be modified: we can add later a block or delete it. Deletion is done with  &lt;br /&gt;
the '''[clear_variable]''' tag:&lt;br /&gt;
 {CLEAR_VARIABLE heroes[1]}  &lt;br /&gt;
This will delete the Konrad record. Please note that the &amp;lt;u&amp;gt;array will be renumbered&amp;lt;/u&amp;gt;: so the Lisar record will now have the index 1.&lt;br /&gt;
&lt;br /&gt;
Adding blocks can be done with '''[set_variables]''' using the additional key '''mode'''. By default, &lt;br /&gt;
'''[set_variables]''' creates a new array (or container), erasing any previous variable with the  &lt;br /&gt;
same name. But, using one of the different modes allows to add new blocks in various places:  &lt;br /&gt;
  &lt;br /&gt;
* replace: will clean the array name and replace it with given data, it’s the default.  &lt;br /&gt;
* append: will append given data to the current array  &lt;br /&gt;
* merge: will merge in the given data into name  &lt;br /&gt;
* insert: will insert the given data at the index specified in the name attribute, such as  &lt;br /&gt;
name=my_array[1].  &lt;br /&gt;
  &lt;br /&gt;
Note that '''[store_unit]''' has also a '''mode''' key allowing to append more units blocks to an array.  &lt;br /&gt;
  &lt;br /&gt;
You can place any kind of block in an array, but usually, it’s good practice to avoid meddling  &lt;br /&gt;
different kind of records (for instance units and locations). The reason is most often, arrays  &lt;br /&gt;
are fetched and manipulated in loops. Loops are much more easy to program when all records  &lt;br /&gt;
have the same structure.  &lt;br /&gt;
The '''FOREACH''' macro is most often used for this purpose. It takes an array name and a  &lt;br /&gt;
variable name as arguments. The variable will contain an index incremented by one on each  &lt;br /&gt;
step of the loop by the ending macro '''NEXT'''. For instance, we can summarize the wealth of  &lt;br /&gt;
our heroes with this code:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         add=$heroes[$index].gold  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 {NEXT index}  &lt;br /&gt;
 &lt;br /&gt;
 [message]  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     message=&amp;quot;Team has $tmp gold.&amp;quot;  &lt;br /&gt;
 [/message]  &lt;br /&gt;
Here, we accumulate the gold amount of our heroes in the variable '''tmp'''. The loop will begin  &lt;br /&gt;
with '''index'''=0 and repeat the code inserted between '''FOREACH''' and '''NEXT''', incrementing the value of index by one and will stop when '''index=heroes.length'''.  &lt;br /&gt;
'''FOREACH''' is easy to use, but one should be aware of two things:&lt;br /&gt;
:- make sure you don’t use the index variable elsewhere: it shall be cleared at the end.  &lt;br /&gt;
:- when using such a loop to delete some records. For instance this:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=heroes[$index].name  &lt;br /&gt;
             equals=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             {CLEAR_VARIABLE heroes[$index]}  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
 {NEXT index}  &lt;br /&gt;
will not work exactly as expected. As we saw earlier, the array will be renumbered when the  &lt;br /&gt;
“Konrad” record is deleted. So the next record will take the “Konrad” index, and, since index  &lt;br /&gt;
is incremented at the end of the step, &amp;lt;u&amp;gt;the record following “Konrad” will be skipped&amp;lt;/u&amp;gt;. The  &lt;br /&gt;
correct way to do this is fetching the array in reverse order[[Less easy because there is no macro for that.|&amp;lt;sup&amp;gt;5)&amp;lt;/sup&amp;gt;]] or decrementing the index after the deletion:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=heroes[$index].name  &lt;br /&gt;
             equals=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             {CLEAR_VARIABLE heroes[$index]}  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name=index  &lt;br /&gt;
                 sub=1  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
 {NEXT index}&lt;br /&gt;
=== &amp;lt;u&amp;gt;First steps into darkness&amp;lt;/u&amp;gt; ===  &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Using simple strings in names&amp;lt;/u&amp;gt; ==== &lt;br /&gt;
Consider this variable name: &lt;br /&gt;
 heroes_$index  &lt;br /&gt;
How to understand this? At execution time, '''$index''' will be replaced with the value of the  &lt;br /&gt;
variable index[[It would be better if it exists…  |&amp;lt;sup&amp;gt;6)&amp;lt;/sup&amp;gt;]]. Suppose it contains 2, the variable used will then be '''heroes_2'''. Of course, it&lt;br /&gt;
can be anything else, “Konrad” for instance. Then the variable will be '''heroes_Konrad'''. &lt;br /&gt;
&lt;br /&gt;
Look at these macros: &lt;br /&gt;
 #define LSB_STOREPERSO ID KILL  &lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=${ID}  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         variable=${ID}_back  &lt;br /&gt;
         kill={KILL}  &lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
 #define LSB_RECALLPERSO ID XY  &lt;br /&gt;
     [unstore_unit]  &lt;br /&gt;
         variable=${ID}_back  &lt;br /&gt;
         find_vacant=yes  &lt;br /&gt;
         {XY}  &lt;br /&gt;
     [/unstore_unit]  &lt;br /&gt;
 #enddef&lt;br /&gt;
They store and retrieve an unit using it’s ID to create the name of the variable. The unit ID is  &lt;br /&gt;
found in the variable whose name is given in the parameter ID. For instance, it can be '''unit.id''' in a moveto event:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     # ... the filter will come here  &lt;br /&gt;
     {LSB_STOREPERSO unit.id yes} # the unit disappear  &lt;br /&gt;
     # but is stored in a variable named after its id,  &lt;br /&gt;
     # for instance &amp;quot;Konrad_back&amp;quot;  &lt;br /&gt;
 [/event]  &lt;br /&gt;
The variables created using this code shouldn’t be confused with an array. They’re individual  &lt;br /&gt;
variables, even if they look more or less the same in the ''':inspect''' display. Particularly, they  &lt;br /&gt;
can’t be fetched using a '''FOREACH''' loop. But if this is not needed, one can find this better to  &lt;br /&gt;
create bi-dimensional arrays, particularly because distinct records are easier to identify in the  &lt;br /&gt;
''':inspect''' display.  &lt;br /&gt;
In this code, we use quite the same system as above to create a bi-dimensional array to store  &lt;br /&gt;
boats and units on board. The unit ID (of the boat) is used to create the name of an array  &lt;br /&gt;
storing the units it contains, whose name is '''RF_$ID''', for example '''RF_B1, RF_B2''' and so on.  &lt;br /&gt;
So, in a '''moveto''' event of one of these boats, '''RF_$unit.id''' is the name of the array  &lt;br /&gt;
containing the crew. This code make them pop out.  &lt;br /&gt;
 {FOREACH RF_$unit.id| n}  &lt;br /&gt;
     [unstore_unit]  &lt;br /&gt;
         variable=RF_$unit.id|[$n]  &lt;br /&gt;
         x,y=$rft[0].x,$rft[0].y  &lt;br /&gt;
         find_vacant=yes  &lt;br /&gt;
     [/unstore_unit]                     &lt;br /&gt;
 {NEXT n}&lt;br /&gt;
Fine, but here, the engine could have a problem: what is exactly RF_$unit.id[$n] ? It can  &lt;br /&gt;
be :  &lt;br /&gt;
:- the nth record of the array RF_$unit.id (if unit.id = B1, it would be RF_B1[$n])  &lt;br /&gt;
:- the simple variable named RF_$unit.id[$n], where the suffix is taken from  $unit.id array.  &lt;br /&gt;
That’s why the pipe character | is appended to the array name. It states the first case is the  &lt;br /&gt;
good one, or in other words, the array name is delimited between the $ sign and the pipe.   &lt;br /&gt;
  &lt;br /&gt;
This is one way to create and use bi-dimensional arrays. But it’s possible to create real bi- &lt;br /&gt;
dimensional array: they are arrays containing arrays (which could contain arrays as well, and  &lt;br /&gt;
so on… but will you really need that ?)  &lt;br /&gt;
Here is the way to do this. We shall use here our “heroes” array, and store it twice into a new  &lt;br /&gt;
created array:  &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=biDim  &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=value  &lt;br /&gt;
         variable=heroes  &lt;br /&gt;
     [/insert_tag]  &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=value  &lt;br /&gt;
         variable=heroes # of course it could be something different  &lt;br /&gt;
     [/insert_tag]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
'''Insert_tag''' creates a new block whose tag is equal to its '''name''' key, so each '''insert_tag''' will create a block: &lt;br /&gt;
 [value]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
         gold=250  &lt;br /&gt;
         fame=127  &lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         gold=125  &lt;br /&gt;
         fame=10  &lt;br /&gt;
         fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
         gold=1258  &lt;br /&gt;
         fame=250  &lt;br /&gt;
         fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
 [/value]  &lt;br /&gt;
Still with us? OK, now to access our heroes we shall use the ordinary syntax. For instance:&lt;br /&gt;
 $biDim[0].heroes[1].name -&amp;gt; Konrad  &lt;br /&gt;
  &lt;br /&gt;
And of course, one can walk all the array using a nested FOREACH loop.  &lt;br /&gt;
 {FOREACH biDim i}  &lt;br /&gt;
     {FOREACH biDim[$i].heroes index}  &lt;br /&gt;
         [if]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=biDim[$i].heroes[$index].gold  &lt;br /&gt;
                 less_than=100  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
             [then]  &lt;br /&gt;
                 [set_variable]  &lt;br /&gt;
                     name=biDim[$i].heroes[$index].gold  &lt;br /&gt;
                     add=100  &lt;br /&gt;
                 [/set_variable]  &lt;br /&gt;
             [/then]  &lt;br /&gt;
         [/if]  &lt;br /&gt;
     {NEXT index}  &lt;br /&gt;
 {NEXT i}  &lt;br /&gt;
This adds some gold to the purse of the poorest heroes of biDim array.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Using variables strings in events names&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
This syntax:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=$myEvent  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/message]  &lt;br /&gt;
Is perfectly valid. Of course, '''myEvent''' should contain some valid event name, consistent with  &lt;br /&gt;
the event body. One use of this is to specify turn numbers. For instance:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=turn $afterDark  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
With this you can set '''afterDark''' in order to state when the event should fire (it must then  &lt;br /&gt;
contain a number or a string of the form '''side number'''). Even more useful is the way to fire an  &lt;br /&gt;
event some turn after another occurred. Suppose we want to raise a storm two turns after some  &lt;br /&gt;
hero visited a particular location. Then we shall write:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     # ... the moveto filter will come here  &lt;br /&gt;
 &lt;br /&gt;
     [event]  &lt;br /&gt;
         name=&amp;quot;turn $($turn_number + 2)&amp;quot;  &lt;br /&gt;
 &lt;br /&gt;
         # start the storm  &lt;br /&gt;
     [/event]  &lt;br /&gt;
 [/event]  &lt;br /&gt;
This will create the nested event and make it fire 2 turns later.  &lt;br /&gt;
It can be used with '''fire_event''' too. This code sets the variable '''myEvent''' according to the  &lt;br /&gt;
incomer type, then fires the corresponding event.  &lt;br /&gt;
 [switch]  &lt;br /&gt;
     name=unit.type  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Elvish Sorceress  &lt;br /&gt;
         {VARIABLE myEvent storm}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Troll Warrior  &lt;br /&gt;
         {VARIABLE myEvent monster}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Mermaid Initiate  &lt;br /&gt;
         {VARIABLE myEvent flood}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
 [/switch]  &lt;br /&gt;
 &lt;br /&gt;
 # --- somewhat later…  &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
     name=$myEvent  &lt;br /&gt;
 [/fire_event]  &lt;br /&gt;
&lt;br /&gt;
 # ... of course, these events should be defined elsewhere  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=storm  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=monster  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=flood  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Voodoo and black magics&amp;lt;/u&amp;gt; ===  &lt;br /&gt;
« He who enters this place must quit all hopes… »&lt;br /&gt;
&lt;br /&gt;
At this point, maybe you begin to suspect many things can be replaced with variables,  &lt;br /&gt;
including parts of the code itself. That’s true and interesting in some cases, but it should be &lt;br /&gt;
clear that using the features explained later creates code much more difficult to understand  &lt;br /&gt;
and to debug. You certainly shall discover that much more can be done than what we  &lt;br /&gt;
describe, but here, we shall restrain ourselves to some limits. Trespassing them is most often  &lt;br /&gt;
getting caught in mysterious traps, and most often, absolutely useless.  &lt;br /&gt;
In other words, you’re at risk to fall into deep darkness under heavy bugs attack. So take  &lt;br /&gt;
care…  &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Existing blocks customization&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
Since we can add members to existing containers, why not add some to documented  &lt;br /&gt;
containers like units or objects ? It’s perfectly possible, and finally harmless (You’re only are at risk your code become broken if the key name is used in further versions of Wesnoth) [[You can minimize the risk using special key names like 'Pyro_level' instead of only 'level'… or write a feature request! |&amp;lt;sup&amp;gt;7)&amp;lt;/sup&amp;gt;]] . WML just ignores what it knows nothing of. In units blocks, you have a special block named '''variables'''  &lt;br /&gt;
where you can add safely all what you want, but it’s common to find in campaigns additions  &lt;br /&gt;
to the '''status''' block. For instance:  &lt;br /&gt;
 {VARIABLE unit.status.isHero yes}&lt;br /&gt;
creates a new flag named '''isHero''' in unit status. Of course, the game engine will not display  &lt;br /&gt;
anything as it does with '''slow''' and '''poison''' status key, but you can use it in filters:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=die  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter_condition]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=unit.status.isHero  &lt;br /&gt;
             boolean_equals=yes  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
     [/filter_condition]  &lt;br /&gt;
      …  &lt;br /&gt;
  &lt;br /&gt;
The same can be done in objects. In this object block, the programmer added two custom  &lt;br /&gt;
keys, category and price.  &lt;br /&gt;
 [object]  &lt;br /&gt;
     name= _ &amp;quot;Poisonous Bow&amp;quot;  &lt;br /&gt;
     image=items/bow.png  &lt;br /&gt;
     description= _ &amp;quot;This bow deals 20% more damage than other bows, it shots poisonned arrows to enemies and is also quicker.&amp;quot;  &lt;br /&gt;
     category=bows  &lt;br /&gt;
     price=150  &lt;br /&gt;
     [effect]  &lt;br /&gt;
         apply_to=new_attack  &lt;br /&gt;
         name=longbow  &lt;br /&gt;
         type=pierce  &lt;br /&gt;
         range=ranged  &lt;br /&gt;
         damage=12  &lt;br /&gt;
         number=4&lt;br /&gt;
         movement_used=0  &lt;br /&gt;
         icon=attacks/bow-elven-magic.png  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             {WEAPON_SPECIAL_POISON}  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
     [/effect]  &lt;br /&gt;
 [/object] &lt;br /&gt;
And when this object is applied to an unit, the extra keys are not deleted or modified in any  &lt;br /&gt;
way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Passing “parameters” to an event&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
The trick explained here is for use with the '''fire-event''' tag. As you know, this tag allows to  &lt;br /&gt;
trigger an  event (custom or not) from another piece of code. Really useful for instance, when  &lt;br /&gt;
you don’t want to repeat the same code in many places. As the reference manual says, it can  &lt;br /&gt;
be used as some sort of subroutine call.  &lt;br /&gt;
Fine, but in programming languages, subroutines calls accept parameters for use of the  &lt;br /&gt;
subroutine, and '''fire_event''' don’t.  &lt;br /&gt;
Suppose we want to display a nice message which can be spoken by various units. Of course,  &lt;br /&gt;
we can use role or a global variable '''whoSpeaks''' to specify who is speaking. For instance:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [message]  &lt;br /&gt;
         speaker=$whoSpeaks  &lt;br /&gt;
         message=_&amp;quot;Vanish, foul messengers of Sauron…&amp;quot; # and so on…  &lt;br /&gt;
     [/message]  &lt;br /&gt;
 [/event]  &lt;br /&gt;
We can fire this event with:        &lt;br /&gt;
 {VARIABLE whoSpeaks Gandalf} # or any other character  &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
      name=nice_speech  &lt;br /&gt;
 [/fire_event]&lt;br /&gt;
But we would have to clear the whoSpeaks variable later. There is another way. In the  &lt;br /&gt;
fire_event tag documentation, one can find:  &lt;br /&gt;
'''[primary_attack]''': Information passed to the primary attack filter and $weapon variable on  &lt;br /&gt;
the new event. Of course, we have no attacker and no attack here, but what happens if we set something here  &lt;br /&gt;
like : &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [primary_attack]  &lt;br /&gt;
         whoSpeaks=Gandalf  &lt;br /&gt;
     [/primary_attack]  &lt;br /&gt;
 [/fire_event]  &lt;br /&gt;
 &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [message]  &lt;br /&gt;
         speaker=$weapon.whoSpeaks  &lt;br /&gt;
         message=_&amp;quot;Vanish, foul messengers of Sauron…&amp;quot; # and so on…  &lt;br /&gt;
     [/message]  &lt;br /&gt;
 [/event]&lt;br /&gt;
Well, it pure voodoo but it works. Of course, one can pass anything in the '''primary_attack'''  &lt;br /&gt;
block, not only a single value. The block itself will be discarded when he event is finished,  &lt;br /&gt;
just like call parameters in subroutines.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Dynamic code with insert_tag&amp;lt;/u&amp;gt; ====&lt;br /&gt;
We have already seen a use of this tag above. Its effect is to insert at execution time a WML  &lt;br /&gt;
block contained in a variable. It is like a macro, but macro substitution occurs once when  &lt;br /&gt;
loading the code which makes a huge difference. With '''insert_tag''', the variable used (i.e. the  &lt;br /&gt;
code executed) can change during the scenario.  &lt;br /&gt;
First step is creating a container holding the WML block you want to execute. For instance,  &lt;br /&gt;
this action:  &lt;br /&gt;
 [harm_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     amount=10  &lt;br /&gt;
     animate=yes  &lt;br /&gt;
     kill=no  &lt;br /&gt;
 [/harm_unit]   &lt;br /&gt;
The easiest way is to use a macro to define the block content:  &lt;br /&gt;
  &lt;br /&gt;
 #define BLOCK_CONTENT  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     amount=10  &lt;br /&gt;
     animate=yes  &lt;br /&gt;
     kill=no  &lt;br /&gt;
 #enddef  &lt;br /&gt;
    &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
         name=harmingCode  &lt;br /&gt;
         [value]  &lt;br /&gt;
             {BLOCK_CONTENT}  &lt;br /&gt;
         [/value]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
Else, we should have to create the variable first, and then add the subtag in this way:  &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=harmingCode  &lt;br /&gt;
     [value]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]&lt;br /&gt;
 &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=harmingCode.filter  &lt;br /&gt;
     [value]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
Notice, we didn’t include the '''[harm_unit]''' tag. Then we can use '''insert_tag''' in this way:  &lt;br /&gt;
 [insert_tag]  &lt;br /&gt;
     name=harm_unit  &lt;br /&gt;
     variable=harmingCode  &lt;br /&gt;
 [/insert_tag]  &lt;br /&gt;
This will produce exactly the original block above. Sometimes, it’s not very practical to  &lt;br /&gt;
define only the block content in the macro (maybe you would like to use it elsewhere, as an  &lt;br /&gt;
ordinary macro). Then you can specify the '''command''' tag in the '''insert_tag'''. This tag does  &lt;br /&gt;
nothing except creating blocks. Then it would be:&lt;br /&gt;
 #define HARM_UNIT  &lt;br /&gt;
    [harm_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             x,y=$x1,$y1  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/harm_unit]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
 &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
          name=harmingCode  &lt;br /&gt;
          [value]  &lt;br /&gt;
              {HARM_UNIT}  &lt;br /&gt;
          [/value]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
     # --- somewhere else…  &lt;br /&gt;
 &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=command  &lt;br /&gt;
         variable=harmingCode  &lt;br /&gt;
     [/insert_tag]&lt;br /&gt;
But… this code works not always. The reason is the $x1, $y1. They are replaced with their values when we create the '''harmingCode''' variable, which is not what we generally want. We want to use the values they hold when the '''insert_tag''' is executed (most often, it’s later), in other words, we want to delay their substitution. To mark these variables to be substituted later , we shall add a pipe character just after the dollar sign:  &lt;br /&gt;
 #define HARM_UNIT  &lt;br /&gt;
     [harm_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             x,y=$|x1,$|y1  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/harm_unit]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
&lt;br /&gt;
Then the code works. And the macro can be used in a normal way too. Another way to avoid the early variable substitution is using the tag '''literal''' instead of '''value''' when creating the '''harmingCode''' variable:&lt;br /&gt;
&lt;br /&gt;
     [set_variables]  &lt;br /&gt;
          name=harmingCode  &lt;br /&gt;
          [literal]  &lt;br /&gt;
              {HARM_UNIT}  &lt;br /&gt;
          [/literal]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
&lt;br /&gt;
Pay heed, '''insert_tag''' must be included in some action (event and so on). It works not at the scenario level for instance.  &lt;br /&gt;
As you can see, the '''insert_tag''' allows to do many things, but in our opinion, should be used scarcely. Here we shall show how it can be used to solve a common problem. Suppose we want to list the objects of a unit in a option message, let the user choose an object and remove it from the unit. This can be done with this kind of code:&lt;br /&gt;
 [message]  &lt;br /&gt;
     message=&amp;quot;Choose an item to drop&amp;quot;  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Fabulous speed potion&amp;quot;  &lt;br /&gt;
         [show_if]  &lt;br /&gt;
             # here a conditional expression stating if the unit has  &lt;br /&gt;
             # the fabulous item.  &lt;br /&gt;
         [/show_if]  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
         # more options blocks...                            &lt;br /&gt;
 [/message]  &lt;br /&gt;
The '''show_if''' tag prevents the line to show if the unit has not the object. There are two problems with this code. First, the condition is not easy to write: the object list of the unit must be searched for that particular object. Next, the message block must have an option for each possible item. No problem if you have only a few, but when, like in some add-ons we shall name not, you have near one hundred…  &lt;br /&gt;
Here, we shall create dynamically a message block listing all the objects in the modification block of the unit. Thus, we don’t need the '''show_if''' tag et we want something like that:&lt;br /&gt;
 [message]  &lt;br /&gt;
     message=&amp;quot;Choose an item to drop&amp;quot;  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Fabulous speed potion&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Amazing flashing bow&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
         [/option]  &lt;br /&gt;
             # ... more options if more objects  &lt;br /&gt;
         [option]  &lt;br /&gt;
             message=&amp;quot;Exit&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... exit the loop  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
 [/message]  &lt;br /&gt;
So we shall create dynamically this block in a container variable and next use '''insert_tag''' to  &lt;br /&gt;
execute it. The block itself is embedded in a loop which executes until the exit option is  &lt;br /&gt;
chosen (this sets the flag '''t_done'''):&lt;br /&gt;
 # list unit objects  &lt;br /&gt;
 #define LSB_LIST_UNIT_THINGS  &lt;br /&gt;
    {VARIABLE t_done no}  &lt;br /&gt;
 &lt;br /&gt;
     [while]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=t_done  &lt;br /&gt;
             equals=no  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [do]  &lt;br /&gt;
             {CLEAR_VARIABLE t_menu}  &lt;br /&gt;
             {VARIABLE t_menu.message &amp;quot; Choose an item to drop:&amp;quot;}  &lt;br /&gt;
             {VARIABLE t_menu.speaker narrator}  &lt;br /&gt;
  &lt;br /&gt;
 # here begins the objects listing. They are in the modifications block of the unit  &lt;br /&gt;
             {FOREACH unit.modifications.object nc}  &lt;br /&gt;
                 # creates the option block with the name of the object  &lt;br /&gt;
                 [set_variables]  &lt;br /&gt;
                     name=t_menu.option  &lt;br /&gt;
                     mode=append  &lt;br /&gt;
                        [value]  &lt;br /&gt;
                            message=$unit.modifications.object[$nc].name  &lt;br /&gt;
                            [command]  &lt;br /&gt;
                                # remove the object, or anything else  &lt;br /&gt;
                                {LSB_CLEAR_UNITOBJECT}  &lt;br /&gt;
                            [/command]  &lt;br /&gt;
                         [/value]              &lt;br /&gt;
                 [/set_variables]  &lt;br /&gt;
             {NEXT nc}  &lt;br /&gt;
 &lt;br /&gt;
 # this adds the “exit” option to the end of the list  &lt;br /&gt;
             {VARIABLE nc $t_menu.option.length}  &lt;br /&gt;
                 [set_variables]  &lt;br /&gt;
                     name=t_menu.option  &lt;br /&gt;
                     mode=append  &lt;br /&gt;
                     [value]  &lt;br /&gt;
                         message=&amp;quot;Exit.&amp;quot;  &lt;br /&gt;
                         [command]  &lt;br /&gt;
                             {VARIABLE t_done yes}  &lt;br /&gt;
                         [/command]  &lt;br /&gt;
                     [/value]              &lt;br /&gt;
                 [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
 # this finally displays the list on screen and let the user choose  &lt;br /&gt;
                 [insert_tag]  &lt;br /&gt;
                     name=message  &lt;br /&gt;
                     variable=t_menu  &lt;br /&gt;
                 [/insert_tag]  &lt;br /&gt;
             [/do]  &lt;br /&gt;
         [/while]  &lt;br /&gt;
     {CLEAR_VARIABLE t_menu,nc}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
 &lt;br /&gt;
 # this is an example of use: in a right-click menu item.  &lt;br /&gt;
     [set_menu_item]  &lt;br /&gt;
         id=LSB_drop  &lt;br /&gt;
         description=&amp;quot;Drop items.&amp;quot;  &lt;br /&gt;
         [show_if]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=unit.side  &lt;br /&gt;
                 equals=1  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/show_if]  &lt;br /&gt;
         [command]  &lt;br /&gt;
             {LSB_LIST_UNIT_THINGS}  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/set_menu_item]&lt;br /&gt;
Of course, you may want to list not all objects applied to a unit. It’s easy to do that adding a  &lt;br /&gt;
custom key to the objects you want to list, for instance '''droppable=yes''', and testing if it is  &lt;br /&gt;
present before creating the option block.  &lt;br /&gt;
  &lt;br /&gt;
Another example of code managing pickuppable items on the map. We first define those objects using macros. For instance, this one is the core Storm Trident with some additional keys. The '''[object]''' tag is missing in order to use this macro more easily in an '''[insert_tag]'''.  &lt;br /&gt;
 # --- Object definition example, don’t include the [object] tag  &lt;br /&gt;
 #define LSB_STORM_TRIDENT  &lt;br /&gt;
     name=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
     image=items/storm-trident.png  &lt;br /&gt;
     duration=forever  &lt;br /&gt;
     description={RTN_USTR-6}  &lt;br /&gt;
     category=spears  &lt;br /&gt;
     level=2  &lt;br /&gt;
     [effect]  &lt;br /&gt;
         apply_to=new_attack  &lt;br /&gt;
         name=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
         description=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
         icon=attacks/lightning.png  &lt;br /&gt;
         type=fire  &lt;br /&gt;
         range=ranged  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             {WEAPON_SPECIAL_MAGICAL}  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
         damage=15  &lt;br /&gt;
         number=2  &lt;br /&gt;
     [/effect]  &lt;br /&gt;
  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 1}  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 2}  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 3}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
At the beginning of the scenario or even the campaign, we define an object list containing all pickuppable items. Please note it’s the only place we need to modify when creating or deleting an object in our campaign. All the code needed to manage them is generic.  &lt;br /&gt;
 # --- shortcut to store an object into an array  &lt;br /&gt;
 #define LSB_OBJINFO OBJ  &lt;br /&gt;
     [value]  &lt;br /&gt;
         {OBJ}  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
   &lt;br /&gt;
 # This is the main objects list which must be created at first start: it creates an array with all pickuppable items and give them an uid.  &lt;br /&gt;
 #define LSB_CREATEOBJECTS_LIST  &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
         name=Objets  &lt;br /&gt;
         mode=replace  &lt;br /&gt;
         {LSB_OBJINFO {RTN_OBJ_TELNECKLACE} }  &lt;br /&gt;
         {LSB_OBJINFO {RTN_OBJ_AELTHRANK} }  &lt;br /&gt;
         {LSB_OBJINFO {LSB_GOLD} }  &lt;br /&gt;
         {LSB_OBJINFO {LSB_STORM_TRIDENT} }  &lt;br /&gt;
         # add more here at will  &lt;br /&gt;
     [/set_variables] &lt;br /&gt;
  &lt;br /&gt;
     {FOREACH Objets i} # this adds an id to objects  &lt;br /&gt;
         [set_variable]  &lt;br /&gt;
             name=Objets[$i].uid  &lt;br /&gt;
             value=$i  &lt;br /&gt;
         [/set_variable]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
Here a macro to drop objects on the map. Note the NUM parameter is the uid created before, not the full object itself. Of course, it can be a variable holding an uid.  &lt;br /&gt;
 #define LSB_DROP_OBJECT NUM X Y  &lt;br /&gt;
     [item] # place the item on the map  &lt;br /&gt;
          image=$Objets[{NUM}].image  &lt;br /&gt;
          x,y={X},{Y}  &lt;br /&gt;
     [/item]  &lt;br /&gt;
     [set_variables] # add it to the dropped objects list  &lt;br /&gt;
         name=D_Objets  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         [value]  &lt;br /&gt;
              x={X}  &lt;br /&gt;
              y={Y}  &lt;br /&gt;
              code={NUM}  &lt;br /&gt;
         [/value]              &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
At last, we can set up a moveto event to trigger the pick up dialog  &lt;br /&gt;
 #define LSB_GETOBJECT FILTER ID  &lt;br /&gt;
     [event]  &lt;br /&gt;
         name=moveto  &lt;br /&gt;
         id=GETOBJECT_{ID}  &lt;br /&gt;
         first_time_only=no  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             [filter_location] # fires only if there is something on the map  &lt;br /&gt;
                 find_in=D_Objets  &lt;br /&gt;
             [/filter_location]  &lt;br /&gt;
             {FILTER} # and for some units  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
 &lt;br /&gt;
         {VARIABLE i $D_Objets.length}  &lt;br /&gt;
         [while] # maybe we have more than one object here  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=i  &lt;br /&gt;
                 greater_than=0  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
             [do]  &lt;br /&gt;
                 [set_variable]  &lt;br /&gt;
                     name=i  &lt;br /&gt;
                     sub=1  &lt;br /&gt;
                 [/set_variable]  &lt;br /&gt;
                 &lt;br /&gt;
 # message  &lt;br /&gt;
                 [if]  &lt;br /&gt;
                     [variable]  &lt;br /&gt;
                         name=D_Objets[$i].x  &lt;br /&gt;
                         equals=$x1  &lt;br /&gt;
                     [/variable]  &lt;br /&gt;
                     [variable]  &lt;br /&gt;
                         name=D_Objets[$i].y  &lt;br /&gt;
                         equals=$y1  &lt;br /&gt;
                     [/variable]  &lt;br /&gt;
                     [then]                         &lt;br /&gt;
                         [message]  &lt;br /&gt;
                             speaker=narrator  &lt;br /&gt;
                             message=_ &amp;quot;There is a $Objets[$D_Objets[$i].code].name on the ground. Should $unit.name take it ?&amp;quot;  &lt;br /&gt;
                             [option]  &lt;br /&gt;
                                 message=_ &amp;quot;Take it&amp;quot;                                         &lt;br /&gt;
                                 [command]                                     &lt;br /&gt;
                                     # --- give object to unit  &lt;br /&gt;
                                     [insert_tag]  &lt;br /&gt;
                                         name=object  &lt;br /&gt;
                                         variable=Objets[$D_Objets[$i].code]  &lt;br /&gt;
                                     [/insert_tag]  &lt;br /&gt;
                                              &lt;br /&gt;
                                     # --- clear the map  &lt;br /&gt;
                                     [remove_item]                                         &lt;br /&gt;
                                         image=$Objets[$D_Objets[$i].code].image  &lt;br /&gt;
                                         x,y=$unit.x,$unit.y                 &lt;br /&gt;
                                     [/remove_item]  &lt;br /&gt;
                                     {CLEAR_VARIABLE D_Objets[$i]}  &lt;br /&gt;
                                 [/command]  &lt;br /&gt;
                             [/option]  &lt;br /&gt;
                             [option]  &lt;br /&gt;
                                 message= _ &amp;quot;Leave it&amp;quot;  &lt;br /&gt;
                             [/option]  &lt;br /&gt;
                         [/message]  &lt;br /&gt;
                     [/then]&lt;br /&gt;
                 [/if]  &lt;br /&gt;
             [/do]&lt;br /&gt;
         [/while]  &lt;br /&gt;
     [/event]  &lt;br /&gt;
 #enddef&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=VariablesWML/How_to_use_variables&amp;diff=52646</id>
		<title>VariablesWML/How to use variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=VariablesWML/How_to_use_variables&amp;diff=52646"/>
		<updated>2013-12-10T09:37:06Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Passing “parameters” to an event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Variables HowTo (or Descent into Darkness) ==&lt;br /&gt;
In this document, we shall try to explain WML variables and their use with some details.   We’ll start under the burning sun of lawful ordinary use, but, step by step, we shall go deeper   in the shadows of necromancy, exploring undocumented features and hidden pits as we may.   The first part should be understandable by any beginner, but the last one most probably   requires a good WML understanding.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Under the burning sun&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Variable definitions&amp;lt;/u&amp;gt; ====&lt;br /&gt;
This section and the next one can be skipped if you already know what variables are and how   to use them.   Variables are some kind of container a programmer can use to store pieces of information   (s)he needs to manipulate : numbers, names, sentences, and anything else. In most   programming languages, variables must be declared before they can be used. Declaration is an   instruction giving a name (used later to refer to the variable) and a type, which defines the   kind of content of the variable (number, characters strings, and so on).   Later in the program, instructions can be used to store and retrieve the content of the   container, which is most often called the value of the variable.   In WML, variables need no declaration and their value have no precise type&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;. This means a   new variable will be created at the first time the programmer stores something in it. And that   (s)he can store anything in it.   Variables use memory, so it’s good practice to clear them when they’re not needed anymore.&lt;br /&gt;
Variables names are freely chosen by the programmer with some restrictions. They should not be the name of a language instruction (keyword) or operator. In WML, you can use quite any name or sentence to name a variable, but you shouldn’t if you want to shun subtle problems. A classical rule is :&lt;br /&gt;
:  - variable name should begin with a letter&lt;br /&gt;
:  - variable names should only contain letters (not accented) and numbers and the   underscore _ character.&lt;br /&gt;
No spaces, no accented letters, no special characters, no minus and plus signs, etc…   Those names are always safe and correctly interpreted by the engine as variables names. Note that some special characters are forbidden in variable names: '''$ , . | {} [] =''' because they have a special meaning we shall see later. I would strongly suggest to avoid common tags names like “event” “side” and too long names like:&lt;br /&gt;
: “name_of_the_guy_who_killed_the_orc_on_last_turn” which is not the same as:&lt;br /&gt;
: “name_of_the_gyu_who_killed_the_orc_on_last_turn”, but it’s not really obvious at first glance.&lt;br /&gt;
It’s a common error to type wrongly a variable name: in WML this don’t rise any   error message, but the variable will have no value, giving most probably what you don’t expect. Last but not least, variables names are case sensitive: in other words, ‘aVar’ is not the same as ‘avar’.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Variables creation and manipulation&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Even if WML variables contents have no precise types.[[In computering words, they are not '''strongly typed.'''|&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;]], we shall discuss two kinds:&lt;br /&gt;
: - variables holding a single value, like a number, a character string&lt;br /&gt;
: - variables holding a compound value, i.e. a pack of single values.&lt;br /&gt;
They’re often called   containers in the documentation. Simple variables are created using the tag '''[set_variable]''':&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=36&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
The tag defines the name and the value of the variable.&lt;br /&gt;
&lt;br /&gt;
Next, we can access the variable value using the variable name prefixed with a dollar sign $.&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     [filter]&lt;br /&gt;
         id=$unit.id&lt;br /&gt;
     [/filter]&lt;br /&gt;
     moves=$simpleVariable&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This sets the moves of the unit to 36 since '''simpleVariable''' holds 36.&lt;br /&gt;
&lt;br /&gt;
When the line is   executed, the value 36 is substituted to '''$simpleVariable''', so it works as if we wrote:&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     [filter]&lt;br /&gt;
         id=$unit.id&lt;br /&gt;
     [/filter]&lt;br /&gt;
     moves=36&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
Using the same tag, we can change the value of '''simpleVariable''', or make some arithmetic   (see the tag documentation for the whole list).&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     sub=30&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
will change the value to 6 of course. We can even set the variable to another value type:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
We shall not use  '''[set_variable]''' tag anymore. Instead, we shall use the '''VARIABLE''' shortcut:&lt;br /&gt;
&lt;br /&gt;
 {VARIABLE simpleVariable &amp;quot;Delfador the Great&amp;quot;}&lt;br /&gt;
stands for:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
We shall not use the arithmetic variations of '''set_variable''' either. Instead we shall use the   '''formulaAI''' syntax which is much more natural. Instead of:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
      name=simpleVariable&lt;br /&gt;
      value=35&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
 [set_variable]&lt;br /&gt;
       name=simpleVariable&lt;br /&gt;
       add=$anotherVariable&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
we shall write:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;$(35 + $anotherVariable)&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
: # or&lt;br /&gt;
 {VARIABLE simpleVariable &amp;quot;$(35 + $anotherVariable)&amp;quot;}&lt;br /&gt;
The formulaAI syntax is easy to use, the important thing is to always put the formula in this   sequence: “'''$( …''' here comes the formula '''… )'''”&lt;br /&gt;
In other words, '''$simpleVariable''' can be written everywhere you want  to use the value of   '''simpleVariable.'''&lt;br /&gt;
Clearing variables can be done using the '''[clear_variable]''' tag:&lt;br /&gt;
 [clear_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
 [/clear_variable]&lt;br /&gt;
: # or using the following macro to delete more than one variable                                                                                      {CLEAR_VARIABLE simpleVariable,anotherOne,count} [[Please note the CLEAR_VARIABLE macro will not work if your variables names contain spaces or commas. It’s one good reason to avoid them.|&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Containers&amp;lt;/u&amp;gt; ====&lt;br /&gt;
What is a container?&lt;br /&gt;
It is a variable holding more than a simple value.&lt;br /&gt;
A good example is the unit variable created automatically in '''moveto''' and '''attack''' events. It contains the full description of a unit, not only its name and its id. Containers are useful to store related values in a pack. All these different values are called “members” of the created container. Instead of writing this:&lt;br /&gt;
 {VARIABLE heroName &amp;quot;Delfador&amp;quot;}&lt;br /&gt;
 {VARIABLE heroGold 250}&lt;br /&gt;
 {VARIABLE heroFame 127}&lt;br /&gt;
 {VARIABLE heroFullName &amp;quot;Delfador the Great&amp;quot;}&lt;br /&gt;
we can pack all this in a “hero” variable using '''[set_variables]''' (notice the ‘s’)&lt;br /&gt;
 [set_variables]&lt;br /&gt;
     name=hero&lt;br /&gt;
     [value]&lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;&lt;br /&gt;
         gold=250&lt;br /&gt;
         fame=127&lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
     [/value]&lt;br /&gt;
 [/set_variables]&lt;br /&gt;
Then, to get the values stored in the container, we shall use the $ sign as before, but appending the member name and a dot:[[That’s why dots are forbidden in variable names : they are used to specify members.|&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
 $hero.name -&amp;gt; Delfador&lt;br /&gt;
 $hero.gold -&amp;gt; 250&lt;br /&gt;
And if we want to change a value, the “gold” member for instance:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=hero.gold&lt;br /&gt;
     add=100&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
It’s important to note that here, we changed the “gold” member as if it was a single variable whose name is “'''hero.gold'''”. We can also clear a member of the container in the same way:&lt;br /&gt;
 {CLEAR_VARIABLE hero.fullName}&lt;br /&gt;
This will delete the '''fullName''' member permanently. Note it will not only clear the value, but   clear the member itself. Clearing the value would be:&lt;br /&gt;
 {VARIABLE hero.fullName &amp;quot;&amp;quot;}&lt;br /&gt;
Can we add later a member to an existing container ? Yes, it can be done:&lt;br /&gt;
 {VARIABLE hero.hasStaff yes}&lt;br /&gt;
this creates the member hasStaff and set it to yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;A glance into the pit&amp;lt;/u&amp;gt; === &lt;br /&gt;
&lt;br /&gt;
All this will be clearer if we take a look at the way variables are stored. Opening a savegame with a text editor, we should find a part like this one:&lt;br /&gt;
 [replay_start]  &lt;br /&gt;
     id=&amp;quot;&amp;quot;&lt;br /&gt;
     [variables]  &lt;br /&gt;
         damage_inflicted=18&lt;br /&gt;
         heal_amount=10  &lt;br /&gt;
         side_number=1  &lt;br /&gt;
         turn_number=26  &lt;br /&gt;
         x1=8  &lt;br /&gt;
         x2=0  &lt;br /&gt;
         y1=8  &lt;br /&gt;
         y2=0  &lt;br /&gt;
         simpleVariable=35  &lt;br /&gt;
         [hero]  &lt;br /&gt;
             name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
             gold=250  &lt;br /&gt;
             fame=127  &lt;br /&gt;
             fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
         [/hero]  &lt;br /&gt;
         ...  &lt;br /&gt;
&lt;br /&gt;
Here are our variables ! We can see simple ones are a pair name/value separated with an equal &lt;br /&gt;
sign.[[That’s why = signs are forbidden in variables names : it corrupts savegames.|&amp;lt;sup&amp;gt;4)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Container are stored in a WML block whose name is the variable name.  &lt;br /&gt;
Actually, it’s just like folders and files on your hard disk. Each name/value pair is like a file,  &lt;br /&gt;
and other tags like folders. This explains the syntax used: '''set_variable''' and '''clear_variable''' operate on name/value pairs, and you use the dot to specify the path to the line you want to create or modify, for example '''hero.name'''.&lt;br /&gt;
Using '''set_variable''' creates a line if it exists not. So we can use it to add lines to the hero &lt;br /&gt;
container using '''hero.'''something name, just as we can add a new line at the first level. &lt;br /&gt;
Now, we can understand better what a container is. It’s a WML block, just as an ordinary tag, &lt;br /&gt;
and can hold &amp;lt;u&amp;gt;any valid WML content&amp;lt;/u&amp;gt;. Look at this: &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=aVar  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=capture&lt;br /&gt;
         first_time_only=no  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             side=3  &lt;br /&gt;
             type=orc           &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         [set_variable]  &lt;br /&gt;
             name=tmp  &lt;br /&gt;
             rand=1..2  &lt;br /&gt;
         [/set_variable]  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]                    &lt;br /&gt;
This is perfectly valid and creates this container variable:  &lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=3  &lt;br /&gt;
         type=orc  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar]                                                    &lt;br /&gt;
We can modify members in the sub blocks too, using the full path to them, separated with &lt;br /&gt;
dots. For instance:&lt;br /&gt;
 {VARIABLE aVar.set_variable.rand “1..5”}  &lt;br /&gt;
or  &lt;br /&gt;
 {VARIABLE aVar.filter.side 2}.  &lt;br /&gt;
Capito ?  &lt;br /&gt;
&lt;br /&gt;
We can delete members, values or even whole blocks in the same way:  &lt;br /&gt;
 {CLEAR_VARIABLE aVar.filter.type}&lt;br /&gt;
will remove the key ‘type’ in the filter block:&lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=3  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar]  &lt;br /&gt;
  &lt;br /&gt;
 {CLEAR_VARIABLE aVar.filter } will remove the whole filter block:  &lt;br /&gt;
  &lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar] &lt;br /&gt;
This example is rather confusing because this variable looks much more like a piece of code  &lt;br /&gt;
than data (and it’s part of the content of an event, of course). But, if you want to follow us to  &lt;br /&gt;
the deeper of darkness, you should already face this ominous truth: data and code are not  &lt;br /&gt;
separated in WML, and it’s possible to modify the code with data manipulation instructions.  &lt;br /&gt;
Fortunately with some limits. Actually, you can only modify from WML what can be put into  &lt;br /&gt;
a variable: units, locations, and some code blocks, but you can’t directly access to scenario  &lt;br /&gt;
level. &lt;br /&gt;
&lt;br /&gt;
A more usual example is the unit container. '''Moveto''' events create a unit variable holding the  &lt;br /&gt;
full description of the moving unit. When pushed in your torture room (the ‘unit’ variable)  &lt;br /&gt;
you’re allowed to access any field of the unit. Exact composition of a unit block can be  &lt;br /&gt;
fetched in a savegame or with ''':inspect''' in debug mode. It’s rather complex. Here is an  &lt;br /&gt;
example (many lines have been deleted, particularly animations):&lt;br /&gt;
 [unit]  &lt;br /&gt;
     flying=yes  &lt;br /&gt;
     gender=&amp;quot;female&amp;quot;  &lt;br /&gt;
     hitpoints=26  &lt;br /&gt;
     id=&amp;quot;Lestiviel&amp;quot;  &lt;br /&gt;
     image=&amp;quot;units/elves-wood/shaman.png&amp;quot;  &lt;br /&gt;
     max_experience=26  &lt;br /&gt;
     max_hitpoints=26  &lt;br /&gt;
     max_moves=5  &lt;br /&gt;
     moves=5  &lt;br /&gt;
     name=_&amp;quot;Lestiviel&amp;quot;  &lt;br /&gt;
     overlays=&amp;quot;misc/hero-icon.png&amp;quot;  &lt;br /&gt;
     profile=&amp;quot;portraits/Lestiviel-y.png&amp;quot;  &lt;br /&gt;
     race=&amp;quot;elf&amp;quot;  &lt;br /&gt;
     [attack]  &lt;br /&gt;
         damage=3  &lt;br /&gt;
         description=_&amp;quot;staff&amp;quot;  &lt;br /&gt;
         icon=&amp;quot;attacks/druidstaff.png&amp;quot;  &lt;br /&gt;
         name=&amp;quot;staff&amp;quot;  &lt;br /&gt;
         number=2  &lt;br /&gt;
         range=&amp;quot;melee&amp;quot;  &lt;br /&gt;
         type=&amp;quot;impact&amp;quot;  &lt;br /&gt;
     [/attack]  &lt;br /&gt;
     [attack]  &lt;br /&gt;
         damage=3  &lt;br /&gt;
         description=_&amp;quot;entangle&amp;quot;  &lt;br /&gt;
         name=&amp;quot;entangle&amp;quot;  &lt;br /&gt;
         number=2  &lt;br /&gt;
         range=&amp;quot;ranged&amp;quot;  &lt;br /&gt;
         type=&amp;quot;impact&amp;quot;  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             [slow]  &lt;br /&gt;
                 description=_&amp;quot;Slow:&amp;quot;  &lt;br /&gt;
                 id=&amp;quot;slow&amp;quot;  &lt;br /&gt;
                 name=_&amp;quot;slows&amp;quot;  &lt;br /&gt;
             [/slow]  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
     [/attack]  &lt;br /&gt;
     [modifications]  &lt;br /&gt;
         [trait]  &lt;br /&gt;
             description=_&amp;quot;Zero upkeep&amp;quot;  &lt;br /&gt;
             female_name=_&amp;quot;female^loyal&amp;quot;  &lt;br /&gt;
             id=&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             male_name=_&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             [effect]  &lt;br /&gt;
                 apply_to=&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             [/effect]  &lt;br /&gt;
         [/trait]  &lt;br /&gt;
         [trait]  &lt;br /&gt;
             female_name=_&amp;quot;female^intelligent&amp;quot;  &lt;br /&gt;
             id=&amp;quot;intelligent&amp;quot;  &lt;br /&gt;
             male_name=_&amp;quot;intelligent&amp;quot;  &lt;br /&gt;
             [effect]  &lt;br /&gt;
                 apply_to=&amp;quot;max_experience&amp;quot;  &lt;br /&gt;
                 increase=&amp;quot;-20%&amp;quot;  &lt;br /&gt;
             [/effect]  &lt;br /&gt;
         [/trait]  &lt;br /&gt;
     [/modifications]  &lt;br /&gt;
 [/unit]&lt;br /&gt;
Here we have a problem: this unit has two attack blocks and two traits blocks. How can we  &lt;br /&gt;
access them ? Writing only '''$unit.attack.name''' can’t be correct since we have two blocks. We  &lt;br /&gt;
have here our first example of arrays. Arrays are lists of WML blocks sharing the same name (here '''attack''' or '''modifications.trait'''). The blocks in arrays are implicitly numbered in the &lt;br /&gt;
order they are written, and we can use this index to state which one we want:&lt;br /&gt;
&lt;br /&gt;
 $unit.attack[0].name -&amp;gt; &amp;quot;staff&amp;quot;  &lt;br /&gt;
 $unit.attack[1].name -&amp;gt; &amp;quot;entangle&amp;quot;  &lt;br /&gt;
        &lt;br /&gt;
 $unit.modifications.trait[0].id -&amp;gt; &amp;quot;loyal&amp;quot;  &lt;br /&gt;
 $unit.modifications.trait[1].id -&amp;gt; &amp;quot;intelligent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note: Indexes begins with 0. So, can we modify the value of the intelligent trait using  &lt;br /&gt;
VARIABLE ? Yes, just do it:  &lt;br /&gt;
  &lt;br /&gt;
 {VARIABLE $unit.modifications.trait[1].increase &amp;quot;-50%&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
Does this modification apply to the unit ? Not immediately. You should use '''[unstore_unit]'''  &lt;br /&gt;
first to pull them out of your torture room, and then… well, it works for some values, but not  &lt;br /&gt;
all of them. There is an automatic healing process at work and some unit properties are  &lt;br /&gt;
overwritten when '''[unstore_unit]''' happens, but the variable itself is really changed. You can  &lt;br /&gt;
verify this using ''':inspect'''.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;More with arrays&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Arrays can be created using the '''[set_variables]''' tag. In it, we can repeat the '''[value][/value]'''  &lt;br /&gt;
block at will, and this will create a container array: &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=heroes  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
         gold=250  &lt;br /&gt;
         fame=127  &lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         gold=125  &lt;br /&gt;
         fame=10  &lt;br /&gt;
         fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
         gold=1258  &lt;br /&gt;
         fame=250  &lt;br /&gt;
         fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
This will create three [heroes] blocks numbered from 0 to 2.  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
     gold=250  &lt;br /&gt;
     fame=127  &lt;br /&gt;
     fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
 [/heroes]  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
     gold=125  &lt;br /&gt;
     fame=10  &lt;br /&gt;
     fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
 [/heroes]  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
     gold=1258  &lt;br /&gt;
     fame=250  &lt;br /&gt;
     fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
 [/heroes]&lt;br /&gt;
Arrays all have a special property named '''length'''. It holds the number of blocks in the array.  &lt;br /&gt;
So here:  &lt;br /&gt;
 $heroes.length -&amp;gt; 3   &lt;br /&gt;
&lt;br /&gt;
 $unit.modifications.trait.length -&amp;gt; 2&lt;br /&gt;
(from the previous ‘unit’ example)  &lt;br /&gt;
  &lt;br /&gt;
Another way to create arrays is using '''[store_unit]''' and '''[store_locations]''' tags, or  &lt;br /&gt;
'''[set_variables]''' when using the '''split''' key to split a string.  &lt;br /&gt;
  &lt;br /&gt;
All these arrays can be modified: we can add later a block or delete it. Deletion is done with  &lt;br /&gt;
the '''[clear_variable]''' tag:&lt;br /&gt;
 {CLEAR_VARIABLE heroes[1]}  &lt;br /&gt;
This will delete the Konrad record. Please note that the &amp;lt;u&amp;gt;array will be renumbered&amp;lt;/u&amp;gt;: so the Lisar record will now have the index 1.&lt;br /&gt;
&lt;br /&gt;
Adding blocks can be done with '''[set_variables]''' using the additional key '''mode'''. By default, &lt;br /&gt;
'''[set_variables]''' creates a new array (or container), erasing any previous variable with the  &lt;br /&gt;
same name. But, using one of the different modes allows to add new blocks in various places:  &lt;br /&gt;
  &lt;br /&gt;
* replace: will clean the array name and replace it with given data, it’s the default.  &lt;br /&gt;
* append: will append given data to the current array  &lt;br /&gt;
* merge: will merge in the given data into name  &lt;br /&gt;
* insert: will insert the given data at the index specified in the name attribute, such as  &lt;br /&gt;
name=my_array[1].  &lt;br /&gt;
  &lt;br /&gt;
Note that '''[store_unit]''' has also a '''mode''' key allowing to append more units blocks to an array.  &lt;br /&gt;
  &lt;br /&gt;
You can place any kind of block in an array, but usually, it’s good practice to avoid meddling  &lt;br /&gt;
different kind of records (for instance units and locations). The reason is most often, arrays  &lt;br /&gt;
are fetched and manipulated in loops. Loops are much more easy to program when all records  &lt;br /&gt;
have the same structure.  &lt;br /&gt;
The '''FOREACH''' macro is most often used for this purpose. It takes an array name and a  &lt;br /&gt;
variable name as arguments. The variable will contain an index incremented by one on each  &lt;br /&gt;
step of the loop by the ending macro '''NEXT'''. For instance, we can summarize the wealth of  &lt;br /&gt;
our heroes with this code:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         add=$heroes[$index].gold  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 {NEXT index}  &lt;br /&gt;
 &lt;br /&gt;
 [message]  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     message=&amp;quot;Team has $tmp gold.&amp;quot;  &lt;br /&gt;
 [/message]  &lt;br /&gt;
Here, we accumulate the gold amount of our heroes in the variable '''tmp'''. The loop will begin  &lt;br /&gt;
with '''index'''=0 and repeat the code inserted between '''FOREACH''' and '''NEXT''', incrementing the value of index by one and will stop when '''index=heroes.length'''.  &lt;br /&gt;
'''FOREACH''' is easy to use, but one should be aware of two things:&lt;br /&gt;
:- make sure you don’t use the index variable elsewhere: it shall be cleared at the end.  &lt;br /&gt;
:- when using such a loop to delete some records. For instance this:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=heroes[$index].name  &lt;br /&gt;
             equals=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             {CLEAR_VARIABLE heroes[$index]}  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
 {NEXT index}  &lt;br /&gt;
will not work exactly as expected. As we saw earlier, the array will be renumbered when the  &lt;br /&gt;
“Konrad” record is deleted. So the next record will take the “Konrad” index, and, since index  &lt;br /&gt;
is incremented at the end of the step, &amp;lt;u&amp;gt;the record following “Konrad” will be skipped&amp;lt;/u&amp;gt;. The  &lt;br /&gt;
correct way to do this is fetching the array in reverse order[[Less easy because there is no macro for that.|&amp;lt;sup&amp;gt;5)&amp;lt;/sup&amp;gt;]] or decrementing the index after the deletion:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=heroes[$index].name  &lt;br /&gt;
             equals=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             {CLEAR_VARIABLE heroes[$index]}  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name=index  &lt;br /&gt;
                 sub=1  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
 {NEXT index}&lt;br /&gt;
=== &amp;lt;u&amp;gt;First steps into darkness&amp;lt;/u&amp;gt; ===  &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Using simple strings in names&amp;lt;/u&amp;gt; ==== &lt;br /&gt;
Consider this variable name: &lt;br /&gt;
 heroes_$index  &lt;br /&gt;
How to understand this? At execution time, '''$index''' will be replaced with the value of the  &lt;br /&gt;
variable index[[It would be better if it exists…  |&amp;lt;sup&amp;gt;6)&amp;lt;/sup&amp;gt;]]. Suppose it contains 2, the variable used will then be '''heroes_2'''. Of course, it&lt;br /&gt;
can be anything else, “Konrad” for instance. Then the variable will be '''heroes_Konrad'''. &lt;br /&gt;
&lt;br /&gt;
Look at these macros: &lt;br /&gt;
 #define LSB_STOREPERSO ID KILL  &lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=${ID}  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         variable=${ID}_back  &lt;br /&gt;
         kill={KILL}  &lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
 #define LSB_RECALLPERSO ID XY  &lt;br /&gt;
     [unstore_unit]  &lt;br /&gt;
         variable=${ID}_back  &lt;br /&gt;
         find_vacant=yes  &lt;br /&gt;
         {XY}  &lt;br /&gt;
     [/unstore_unit]  &lt;br /&gt;
 #enddef&lt;br /&gt;
They store and retrieve an unit using it’s ID to create the name of the variable. The unit ID is  &lt;br /&gt;
found in the variable whose name is given in the parameter ID. For instance, it can be '''unit.id''' in a moveto event:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     # ... the filter will come here  &lt;br /&gt;
     {LSB_STOREPERSO unit.id yes} # the unit disappear  &lt;br /&gt;
     # but is stored in a variable named after its id,  &lt;br /&gt;
     # for instance &amp;quot;Konrad_back&amp;quot;  &lt;br /&gt;
 [/event]  &lt;br /&gt;
The variables created using this code shouldn’t be confused with an array. They’re individual  &lt;br /&gt;
variables, even if they look more or less the same in the ''':inspect''' display. Particularly, they  &lt;br /&gt;
can’t be fetched using a '''FOREACH''' loop. But if this is not needed, one can find this better to  &lt;br /&gt;
create bi-dimensional arrays, particularly because distinct records are easier to identify in the  &lt;br /&gt;
''':inspect''' display.  &lt;br /&gt;
In this code, we use quite the same system as above to create a bi-dimensional array to store  &lt;br /&gt;
boats and units on board. The unit ID (of the boat) is used to create the name of an array  &lt;br /&gt;
storing the units it contains, whose name is '''RF_$ID''', for example '''RF_B1, RF_B2''' and so on.  &lt;br /&gt;
So, in a '''moveto''' event of one of these boats, '''RF_$unit.id''' is the name of the array  &lt;br /&gt;
containing the crew. This code make them pop out.  &lt;br /&gt;
 {FOREACH RF_$unit.id| n}  &lt;br /&gt;
     [unstore_unit]  &lt;br /&gt;
         variable=RF_$unit.id|[$n]  &lt;br /&gt;
         x,y=$rft[0].x,$rft[0].y  &lt;br /&gt;
         find_vacant=yes  &lt;br /&gt;
     [/unstore_unit]                     &lt;br /&gt;
 {NEXT n}&lt;br /&gt;
Fine, but here, the engine could have a problem: what is exactly RF_$unit.id[$n] ? It can  &lt;br /&gt;
be :  &lt;br /&gt;
:- the nth record of the array RF_$unit.id (if unit.id = B1, it would be RF_B1[$n])  &lt;br /&gt;
:- the simple variable named RF_$unit.id[$n], where the suffix is taken from  $unit.id array.  &lt;br /&gt;
That’s why the pipe character | is appended to the array name. It states the first case is the  &lt;br /&gt;
good one, or in other words, the array name is delimited between the $ sign and the pipe.   &lt;br /&gt;
  &lt;br /&gt;
This is one way to create and use bi-dimensional arrays. But it’s possible to create real bi- &lt;br /&gt;
dimensional array: they are arrays containing arrays (which could contain arrays as well, and  &lt;br /&gt;
so on… but will you really need that ?)  &lt;br /&gt;
Here is the way to do this. We shall use here our “heroes” array, and store it twice into a new  &lt;br /&gt;
created array:  &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=biDim  &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=value  &lt;br /&gt;
         variable=heroes  &lt;br /&gt;
     [/insert_tag]  &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=value  &lt;br /&gt;
         variable=heroes # of course it could be something different  &lt;br /&gt;
     [/insert_tag]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
'''Insert_tag''' creates a new block whose tag is equal to its '''name''' key, so each '''insert_tag''' will create a block: &lt;br /&gt;
 [value]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
         gold=250  &lt;br /&gt;
         fame=127  &lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         gold=125  &lt;br /&gt;
         fame=10  &lt;br /&gt;
         fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
         gold=1258  &lt;br /&gt;
         fame=250  &lt;br /&gt;
         fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
 [/value]  &lt;br /&gt;
Still with us? OK, now to access our heroes we shall use the ordinary syntax. For instance:&lt;br /&gt;
 $biDim[0].heroes[1].name -&amp;gt; Konrad  &lt;br /&gt;
  &lt;br /&gt;
And of course, one can walk all the array using a nested FOREACH loop.  &lt;br /&gt;
 {FOREACH biDim i}  &lt;br /&gt;
     {FOREACH biDim[$i].heroes index}  &lt;br /&gt;
         [if]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=biDim[$i].heroes[$index].gold  &lt;br /&gt;
                 less_than=100  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
             [then]  &lt;br /&gt;
                 [set_variable]  &lt;br /&gt;
                     name=biDim[$i].heroes[$index].gold  &lt;br /&gt;
                     add=100  &lt;br /&gt;
                 [/set_variable]  &lt;br /&gt;
             [/then]  &lt;br /&gt;
         [/if]  &lt;br /&gt;
     {NEXT index}  &lt;br /&gt;
 {NEXT i}  &lt;br /&gt;
This adds some gold to the purse of the poorest heroes of biDim array.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Using variables strings in events names&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
This syntax:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=$myEvent  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/message]  &lt;br /&gt;
Is perfectly valid. Of course, '''myEvent''' should contain some valid event name, consistent with  &lt;br /&gt;
the event body. One use of this is to specify turn numbers. For instance:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=turn $afterDark  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
With this you can set '''afterDark''' in order to state when the event should fire (it must then  &lt;br /&gt;
contain a number or a string of the form '''side number'''). Even more useful is the way to fire an  &lt;br /&gt;
event some turn after another occurred. Suppose we want to raise a storm two turns after some  &lt;br /&gt;
hero visited a particular location. Then we shall write:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     # ... the moveto filter will come here  &lt;br /&gt;
 &lt;br /&gt;
     [event]  &lt;br /&gt;
         name=&amp;quot;turn $($turn_number + 2)&amp;quot;  &lt;br /&gt;
 &lt;br /&gt;
         # start the storm  &lt;br /&gt;
     [/event]  &lt;br /&gt;
 [/event]  &lt;br /&gt;
This will create the nested event and make it fire 2 turns later.  &lt;br /&gt;
It can be used with '''fire_event''' too. This code sets the variable '''myEvent''' according to the  &lt;br /&gt;
incomer type, then fires the corresponding event.  &lt;br /&gt;
 [switch]  &lt;br /&gt;
     name=unit.type  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Elvish Sorceress  &lt;br /&gt;
         {VARIABLE myEvent storm}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Troll Warrior  &lt;br /&gt;
         {VARIABLE myEvent monster}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Mermaid Initiate  &lt;br /&gt;
         {VARIABLE myEvent flood}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
 [/switch]  &lt;br /&gt;
 &lt;br /&gt;
 # --- somewhat later…  &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
     name=$myEvent  &lt;br /&gt;
 [/fire_event]  &lt;br /&gt;
&lt;br /&gt;
 # ... of course, these events should be defined elsewhere  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=storm  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=monster  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=flood  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Voodoo and black magics&amp;lt;/u&amp;gt; ===  &lt;br /&gt;
« He who enters this place must quit all hopes… »&lt;br /&gt;
&lt;br /&gt;
At this point, maybe you begin to suspect many things can be replaced with variables,  &lt;br /&gt;
including parts of the code itself. That’s true and interesting in some cases, but it should be &lt;br /&gt;
clear that using the features explained later creates code much more difficult to understand  &lt;br /&gt;
and to debug. You certainly shall discover that much more can be done than what we  &lt;br /&gt;
describe, but here, we shall restrain ourselves to some limits. Trespassing them is most often  &lt;br /&gt;
getting caught in mysterious traps, and most often, absolutely useless.  &lt;br /&gt;
In other words, you’re at risk to fall into deep darkness under heavy bugs attack. So take  &lt;br /&gt;
care…  &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Existing blocks customization&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
Since we can add members to existing containers, why not add some to documented  &lt;br /&gt;
containers like units or objects ? It’s perfectly possible, and finally harmless (You’re only are at risk your code become broken if the key name is used in further versions of Wesnoth) [[You can minimize the risk using special key names like 'Pyro_level' instead of only 'level'… or write a feature request! |&amp;lt;sup&amp;gt;7)&amp;lt;/sup&amp;gt;]] . WML just ignores what it knows nothing of. In units blocks, you have a special block named '''variables'''  &lt;br /&gt;
where you can add safely all what you want, but it’s common to find in campaigns additions  &lt;br /&gt;
to the '''status''' block. For instance:  &lt;br /&gt;
 {VARIABLE unit.status.isHero yes}&lt;br /&gt;
creates a new flag named '''isHero''' in unit status. Of course, the game engine will not display  &lt;br /&gt;
anything as it does with '''slow''' and '''poison''' status key, but you can use it in filters:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=die  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter_condition]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=unit.status.isHero  &lt;br /&gt;
             boolean_equals=yes  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
     [/filter_condition]  &lt;br /&gt;
      …  &lt;br /&gt;
  &lt;br /&gt;
The same can be done in objects. In this object block, the programmer added two custom  &lt;br /&gt;
keys, category and price.  &lt;br /&gt;
 [object]  &lt;br /&gt;
     name= _ &amp;quot;Poisonous Bow&amp;quot;  &lt;br /&gt;
     image=items/bow.png  &lt;br /&gt;
     description= _ &amp;quot;This bow deals 20% more damage than other bows, it shots poisonned arrows to enemies and is also quicker.&amp;quot;  &lt;br /&gt;
     category=bows  &lt;br /&gt;
     price=150  &lt;br /&gt;
     [effect]  &lt;br /&gt;
         apply_to=new_attack  &lt;br /&gt;
         name=longbow  &lt;br /&gt;
         type=pierce  &lt;br /&gt;
         range=ranged  &lt;br /&gt;
         damage=12  &lt;br /&gt;
         number=4&lt;br /&gt;
         movement_used=0  &lt;br /&gt;
         icon=attacks/bow-elven-magic.png  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             {WEAPON_SPECIAL_POISON}  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
     [/effect]  &lt;br /&gt;
 [/object] &lt;br /&gt;
And when this object is applied to an unit, the extra keys are not deleted or modified in any  &lt;br /&gt;
way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Passing “parameters” to an event&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
The trick explained here is for use with the '''fire-event''' tag. As you know, this tag allows to  &lt;br /&gt;
trigger an  event (custom or not) from another piece of code. Really useful for instance, when  &lt;br /&gt;
you don’t want to repeat the same code in many places. As the reference manual says, it can  &lt;br /&gt;
be used as some sort of subroutine call.  &lt;br /&gt;
Fine, but in programming languages, subroutines calls accept parameters for use of the  &lt;br /&gt;
subroutine, and '''fire_event''' don’t.  &lt;br /&gt;
Suppose we want to display a nice message which can be spoken by various units. Of course,  &lt;br /&gt;
we can use role or a global variable '''whoSpeaks''' to specify who is speaking. For instance:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [message]  &lt;br /&gt;
         speaker=$whoSpeaks  &lt;br /&gt;
         message=_&amp;quot;Vanish, foul messengers of Sauron…&amp;quot; # and so on…  &lt;br /&gt;
     [/message]  &lt;br /&gt;
 [/event]  &lt;br /&gt;
We can fire this event with:        &lt;br /&gt;
 {VARIABLE whoSpeaks Gandalf} # or any other character  &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
      name=nice_speech  &lt;br /&gt;
 [/fire_event]&lt;br /&gt;
But we would have to clear the whoSpeaks variable later. There is another way. In the  &lt;br /&gt;
fire_event tag documentation, one can find:  &lt;br /&gt;
'''[primary_attack]''': Information passed to the primary attack filter and $weapon variable on  &lt;br /&gt;
the new event. Of course, we have no attacker and no attack here, but what happens if we set something here  &lt;br /&gt;
like : &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [primary_attack]  &lt;br /&gt;
         whoSpeaks=Gandalf  &lt;br /&gt;
     [/primary_attack]  &lt;br /&gt;
 [/fire_event]  &lt;br /&gt;
 &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [message]  &lt;br /&gt;
         speaker=$weapon.whoSpeaks  &lt;br /&gt;
         message=_&amp;quot;Vanish, foul messengers of Sauron…&amp;quot; # and so on…  &lt;br /&gt;
     [/message]  &lt;br /&gt;
 [/event]&lt;br /&gt;
Well, it pure voodoo but it works. Of course, one can pass anything in the '''primary_attack'''  &lt;br /&gt;
block, not only a single value. The block itself will be discarded when he event is finished,  &lt;br /&gt;
just like call parameters in subroutines.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Dynamic code with insert_tag&amp;lt;/u&amp;gt; ====&lt;br /&gt;
We have already seen a use of this tag above. Its effect is to insert at execution time a WML  &lt;br /&gt;
block contained in a variable. It is like a macro, but macro substitution occurs once when  &lt;br /&gt;
loading the code which makes a huge difference. With '''insert_tag''', the variable used (i.e. the  &lt;br /&gt;
code executed) can change during the scenario.  &lt;br /&gt;
First step is creating a container holding the WML block you want to execute. For instance,  &lt;br /&gt;
this action:  &lt;br /&gt;
 [harm_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     amount=10  &lt;br /&gt;
     animate=yes  &lt;br /&gt;
     kill=no  &lt;br /&gt;
 [/harm_unit]   &lt;br /&gt;
The easiest way is to use a macro to define the block content:  &lt;br /&gt;
  &lt;br /&gt;
 #define BLOCK_CONTENT  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     amount=10  &lt;br /&gt;
     animate=yes  &lt;br /&gt;
     kill=no  &lt;br /&gt;
 #enddef  &lt;br /&gt;
    &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
         name=harmingCode  &lt;br /&gt;
         [value]  &lt;br /&gt;
             {BLOCK_CONTENT}  &lt;br /&gt;
         [/value]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
Else, we should have to create the variable first, and then add the subtag in this way:  &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=harmingCode  &lt;br /&gt;
     [value]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]&lt;br /&gt;
 &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=harmingCode.filter  &lt;br /&gt;
     [value]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
Notice, we didn’t include the '''[harm_unit]''' tag. Then we can use '''insert_tag''' in this way:  &lt;br /&gt;
 [insert_tag]  &lt;br /&gt;
     name=harm_unit  &lt;br /&gt;
     variable=harmingCode  &lt;br /&gt;
 [/insert_tag]  &lt;br /&gt;
This will produce exactly the original block above. Sometimes, it’s not very practical to  &lt;br /&gt;
define only the block content in the macro (maybe you would like to use it elsewhere, as an  &lt;br /&gt;
ordinary macro). Then you can specify the '''command''' tag in the '''insert_tag'''. This tag does  &lt;br /&gt;
nothing except creating blocks. Then it would be:&lt;br /&gt;
 #define HARM_UNIT  &lt;br /&gt;
    [harm_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             x,y=$x1,$y1  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/harm_unit]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
 &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
          name=harmingCode  &lt;br /&gt;
          [value]  &lt;br /&gt;
              {HARM_UNIT}  &lt;br /&gt;
          [/value]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
     # --- somewhere else…  &lt;br /&gt;
 &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=command  &lt;br /&gt;
         variable=harmingCode  &lt;br /&gt;
     [/insert_tag]&lt;br /&gt;
But… this code works not always. The reason is the $x1, $y1. They are replaced with their values when we create the '''harmingCode''' variable, which is not what we generally want. We want to use the values they hold when the '''insert_tag''' is executed (most often, it’s later), in other words, we want to delay their substitution. To mark these variables to be substituted later , we shall add a pipe character just after the dollar sign:  &lt;br /&gt;
 #define HARM_UNIT  &lt;br /&gt;
     [harm_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             x,y=$|x1,$|y1  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/harm_unit]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
Then the code works. And the macro can be used in a normal way too.  &lt;br /&gt;
Pay heed, '''insert_tag''' must be included in some action (event and so on). It works not at the scenario level for instance.  &lt;br /&gt;
As you can see, the '''insert_tag''' allows to do many things, but in our opinion, should be used scarcely. Here we shall show how it can be used to solve a common problem. Suppose we want to list the objects of a unit in a option message, let the user choose an object and remove it from the unit. This can be done with this kind of code:&lt;br /&gt;
 [message]  &lt;br /&gt;
     message=&amp;quot;Choose an item to drop&amp;quot;  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Fabulous speed potion&amp;quot;  &lt;br /&gt;
         [show_if]  &lt;br /&gt;
             # here a conditional expression stating if the unit has  &lt;br /&gt;
             # the fabulous item.  &lt;br /&gt;
         [/show_if]  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
         # more options blocks...                            &lt;br /&gt;
 [/message]  &lt;br /&gt;
The '''show_if''' tag prevents the line to show if the unit has not the object. There are two problems with this code. First, the condition is not easy to write: the object list of the unit must be searched for that particular object. Next, the message block must have an option for each possible item. No problem if you have only a few, but when, like in some add-ons we shall name not, you have near one hundred…  &lt;br /&gt;
Here, we shall create dynamically a message block listing all the objects in the modification block of the unit. Thus, we don’t need the '''show_if''' tag et we want something like that:&lt;br /&gt;
 [message]  &lt;br /&gt;
     message=&amp;quot;Choose an item to drop&amp;quot;  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Fabulous speed potion&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Amazing flashing bow&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
         [/option]  &lt;br /&gt;
             # ... more options if more objects  &lt;br /&gt;
         [option]  &lt;br /&gt;
             message=&amp;quot;Exit&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... exit the loop  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
 [/message]  &lt;br /&gt;
So we shall create dynamically this block in a container variable and next use '''insert_tag''' to  &lt;br /&gt;
execute it. The block itself is embedded in a loop which executes until the exit option is  &lt;br /&gt;
chosen (this sets the flag '''t_done'''):&lt;br /&gt;
 # list unit objects  &lt;br /&gt;
 #define LSB_LIST_UNIT_THINGS  &lt;br /&gt;
    {VARIABLE t_done no}  &lt;br /&gt;
 &lt;br /&gt;
     [while]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=t_done  &lt;br /&gt;
             equals=no  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [do]  &lt;br /&gt;
             {CLEAR_VARIABLE t_menu}  &lt;br /&gt;
             {VARIABLE t_menu.message &amp;quot; Choose an item to drop:&amp;quot;}  &lt;br /&gt;
             {VARIABLE t_menu.speaker narrator}  &lt;br /&gt;
  &lt;br /&gt;
 # here begins the objects listing. They are in the modifications block of the unit  &lt;br /&gt;
             {FOREACH unit.modifications.object nc}  &lt;br /&gt;
                 # creates the option block with the name of the object  &lt;br /&gt;
                 [set_variables]  &lt;br /&gt;
                     name=t_menu.option  &lt;br /&gt;
                     mode=append  &lt;br /&gt;
                        [value]  &lt;br /&gt;
                            message=$unit.modifications.object[$nc].name  &lt;br /&gt;
                            [command]  &lt;br /&gt;
                                # remove the object, or anything else  &lt;br /&gt;
                                {LSB_CLEAR_UNITOBJECT}  &lt;br /&gt;
                            [/command]  &lt;br /&gt;
                         [/value]              &lt;br /&gt;
                 [/set_variables]  &lt;br /&gt;
             {NEXT nc}  &lt;br /&gt;
 &lt;br /&gt;
 # this adds the “exit” option to the end of the list  &lt;br /&gt;
             {VARIABLE nc $t_menu.option.length}  &lt;br /&gt;
                 [set_variables]  &lt;br /&gt;
                     name=t_menu.option  &lt;br /&gt;
                     mode=append  &lt;br /&gt;
                     [value]  &lt;br /&gt;
                         message=&amp;quot;Exit.&amp;quot;  &lt;br /&gt;
                         [command]  &lt;br /&gt;
                             {VARIABLE t_done yes}  &lt;br /&gt;
                         [/command]  &lt;br /&gt;
                     [/value]              &lt;br /&gt;
                 [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
 # this finally displays the list on screen and let the user choose  &lt;br /&gt;
                 [insert_tag]  &lt;br /&gt;
                     name=message  &lt;br /&gt;
                     variable=t_menu  &lt;br /&gt;
                 [/insert_tag]  &lt;br /&gt;
             [/do]  &lt;br /&gt;
         [/while]  &lt;br /&gt;
     {CLEAR_VARIABLE t_menu,nc}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
 &lt;br /&gt;
 # this is an example of use: in a right-click menu item.  &lt;br /&gt;
     [set_menu_item]  &lt;br /&gt;
         id=LSB_drop  &lt;br /&gt;
         description=&amp;quot;Drop items.&amp;quot;  &lt;br /&gt;
         [show_if]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=unit.side  &lt;br /&gt;
                 equals=1  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/show_if]  &lt;br /&gt;
         [command]  &lt;br /&gt;
             {LSB_LIST_UNIT_THINGS}  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/set_menu_item]&lt;br /&gt;
Of course, you may want to list not all objects applied to a unit. It’s easy to do that adding a  &lt;br /&gt;
custom key to the objects you want to list, for instance '''droppable=yes''', and testing if it is  &lt;br /&gt;
present before creating the option block.  &lt;br /&gt;
  &lt;br /&gt;
Another example of code managing pickuppable items on the map. We first define those objects using macros. For instance, this one is the core Storm Trident with some additional keys. The '''[object]''' tag is missing in order to use this macro more easily in an '''[insert_tag]'''.  &lt;br /&gt;
 # --- Object definition example, don’t include the [object] tag  &lt;br /&gt;
 #define LSB_STORM_TRIDENT  &lt;br /&gt;
     name=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
     image=items/storm-trident.png  &lt;br /&gt;
     duration=forever  &lt;br /&gt;
     description={RTN_USTR-6}  &lt;br /&gt;
     category=spears  &lt;br /&gt;
     level=2  &lt;br /&gt;
     [effect]  &lt;br /&gt;
         apply_to=new_attack  &lt;br /&gt;
         name=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
         description=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
         icon=attacks/lightning.png  &lt;br /&gt;
         type=fire  &lt;br /&gt;
         range=ranged  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             {WEAPON_SPECIAL_MAGICAL}  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
         damage=15  &lt;br /&gt;
         number=2  &lt;br /&gt;
     [/effect]  &lt;br /&gt;
  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 1}  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 2}  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 3}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
At the beginning of the scenario or even the campaign, we define an object list containing all pickuppable items. Please note it’s the only place we need to modify when creating or deleting an object in our campaign. All the code needed to manage them is generic.  &lt;br /&gt;
 # --- shortcut to store an object into an array  &lt;br /&gt;
 #define LSB_OBJINFO OBJ  &lt;br /&gt;
     [value]  &lt;br /&gt;
         {OBJ}  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
   &lt;br /&gt;
 # This is the main objects list which must be created at first start: it creates an array with all pickuppable items and give them an uid.  &lt;br /&gt;
 #define LSB_CREATEOBJECTS_LIST  &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
         name=Objets  &lt;br /&gt;
         mode=replace  &lt;br /&gt;
         {LSB_OBJINFO {RTN_OBJ_TELNECKLACE} }  &lt;br /&gt;
         {LSB_OBJINFO {RTN_OBJ_AELTHRANK} }  &lt;br /&gt;
         {LSB_OBJINFO {LSB_GOLD} }  &lt;br /&gt;
         {LSB_OBJINFO {LSB_STORM_TRIDENT} }  &lt;br /&gt;
         # add more here at will  &lt;br /&gt;
     [/set_variables] &lt;br /&gt;
  &lt;br /&gt;
     {FOREACH Objets i} # this adds an id to objects  &lt;br /&gt;
         [set_variable]  &lt;br /&gt;
             name=Objets[$i].uid  &lt;br /&gt;
             value=$i  &lt;br /&gt;
         [/set_variable]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
Here a macro to drop objects on the map. Note the NUM parameter is the uid created before, not the full object itself. Of course, it can be a variable holding an uid.  &lt;br /&gt;
 #define LSB_DROP_OBJECT NUM X Y  &lt;br /&gt;
     [item] # place the item on the map  &lt;br /&gt;
          image=$Objets[{NUM}].image  &lt;br /&gt;
          x,y={X},{Y}  &lt;br /&gt;
     [/item]  &lt;br /&gt;
     [set_variables] # add it to the dropped objects list  &lt;br /&gt;
         name=D_Objets  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         [value]  &lt;br /&gt;
              x={X}  &lt;br /&gt;
              y={Y}  &lt;br /&gt;
              code={NUM}  &lt;br /&gt;
         [/value]              &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
At last, we can set up a moveto event to trigger the pick up dialog  &lt;br /&gt;
 #define LSB_GETOBJECT FILTER ID  &lt;br /&gt;
     [event]  &lt;br /&gt;
         name=moveto  &lt;br /&gt;
         id=GETOBJECT_{ID}  &lt;br /&gt;
         first_time_only=no  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             [filter_location] # fires only if there is something on the map  &lt;br /&gt;
                 find_in=D_Objets  &lt;br /&gt;
             [/filter_location]  &lt;br /&gt;
             {FILTER} # and for some units  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
 &lt;br /&gt;
         {VARIABLE i $D_Objets.length}  &lt;br /&gt;
         [while] # maybe we have more than one object here  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=i  &lt;br /&gt;
                 greater_than=0  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
             [do]  &lt;br /&gt;
                 [set_variable]  &lt;br /&gt;
                     name=i  &lt;br /&gt;
                     sub=1  &lt;br /&gt;
                 [/set_variable]  &lt;br /&gt;
                 &lt;br /&gt;
 # message  &lt;br /&gt;
                 [if]  &lt;br /&gt;
                     [variable]  &lt;br /&gt;
                         name=D_Objets[$i].x  &lt;br /&gt;
                         equals=$x1  &lt;br /&gt;
                     [/variable]  &lt;br /&gt;
                     [variable]  &lt;br /&gt;
                         name=D_Objets[$i].y  &lt;br /&gt;
                         equals=$y1  &lt;br /&gt;
                     [/variable]  &lt;br /&gt;
                     [then]                         &lt;br /&gt;
                         [message]  &lt;br /&gt;
                             speaker=narrator  &lt;br /&gt;
                             message=_ &amp;quot;There is a $Objets[$D_Objets[$i].code].name on the ground. Should $unit.name take it ?&amp;quot;  &lt;br /&gt;
                             [option]  &lt;br /&gt;
                                 message=_ &amp;quot;Take it&amp;quot;                                         &lt;br /&gt;
                                 [command]                                     &lt;br /&gt;
                                     # --- give object to unit  &lt;br /&gt;
                                     [insert_tag]  &lt;br /&gt;
                                         name=object  &lt;br /&gt;
                                         variable=Objets[$D_Objets[$i].code]  &lt;br /&gt;
                                     [/insert_tag]  &lt;br /&gt;
                                              &lt;br /&gt;
                                     # --- clear the map  &lt;br /&gt;
                                     [remove_item]                                         &lt;br /&gt;
                                         image=$Objets[$D_Objets[$i].code].image  &lt;br /&gt;
                                         x,y=$unit.x,$unit.y                 &lt;br /&gt;
                                     [/remove_item]  &lt;br /&gt;
                                     {CLEAR_VARIABLE D_Objets[$i]}  &lt;br /&gt;
                                 [/command]  &lt;br /&gt;
                             [/option]  &lt;br /&gt;
                             [option]  &lt;br /&gt;
                                 message= _ &amp;quot;Leave it&amp;quot;  &lt;br /&gt;
                             [/option]  &lt;br /&gt;
                         [/message]  &lt;br /&gt;
                     [/then]&lt;br /&gt;
                 [/if]  &lt;br /&gt;
             [/do]&lt;br /&gt;
         [/while]  &lt;br /&gt;
     [/event]  &lt;br /&gt;
 #enddef&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=VariablesWML/How_to_use_variables&amp;diff=52645</id>
		<title>VariablesWML/How to use variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=VariablesWML/How_to_use_variables&amp;diff=52645"/>
		<updated>2013-12-10T09:35:53Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Voodoo and black magics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Variables HowTo (or Descent into Darkness) ==&lt;br /&gt;
In this document, we shall try to explain WML variables and their use with some details.   We’ll start under the burning sun of lawful ordinary use, but, step by step, we shall go deeper   in the shadows of necromancy, exploring undocumented features and hidden pits as we may.   The first part should be understandable by any beginner, but the last one most probably   requires a good WML understanding.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Under the burning sun&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Variable definitions&amp;lt;/u&amp;gt; ====&lt;br /&gt;
This section and the next one can be skipped if you already know what variables are and how   to use them.   Variables are some kind of container a programmer can use to store pieces of information   (s)he needs to manipulate : numbers, names, sentences, and anything else. In most   programming languages, variables must be declared before they can be used. Declaration is an   instruction giving a name (used later to refer to the variable) and a type, which defines the   kind of content of the variable (number, characters strings, and so on).   Later in the program, instructions can be used to store and retrieve the content of the   container, which is most often called the value of the variable.   In WML, variables need no declaration and their value have no precise type&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;. This means a   new variable will be created at the first time the programmer stores something in it. And that   (s)he can store anything in it.   Variables use memory, so it’s good practice to clear them when they’re not needed anymore.&lt;br /&gt;
Variables names are freely chosen by the programmer with some restrictions. They should not be the name of a language instruction (keyword) or operator. In WML, you can use quite any name or sentence to name a variable, but you shouldn’t if you want to shun subtle problems. A classical rule is :&lt;br /&gt;
:  - variable name should begin with a letter&lt;br /&gt;
:  - variable names should only contain letters (not accented) and numbers and the   underscore _ character.&lt;br /&gt;
No spaces, no accented letters, no special characters, no minus and plus signs, etc…   Those names are always safe and correctly interpreted by the engine as variables names. Note that some special characters are forbidden in variable names: '''$ , . | {} [] =''' because they have a special meaning we shall see later. I would strongly suggest to avoid common tags names like “event” “side” and too long names like:&lt;br /&gt;
: “name_of_the_guy_who_killed_the_orc_on_last_turn” which is not the same as:&lt;br /&gt;
: “name_of_the_gyu_who_killed_the_orc_on_last_turn”, but it’s not really obvious at first glance.&lt;br /&gt;
It’s a common error to type wrongly a variable name: in WML this don’t rise any   error message, but the variable will have no value, giving most probably what you don’t expect. Last but not least, variables names are case sensitive: in other words, ‘aVar’ is not the same as ‘avar’.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Variables creation and manipulation&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Even if WML variables contents have no precise types.[[In computering words, they are not '''strongly typed.'''|&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;]], we shall discuss two kinds:&lt;br /&gt;
: - variables holding a single value, like a number, a character string&lt;br /&gt;
: - variables holding a compound value, i.e. a pack of single values.&lt;br /&gt;
They’re often called   containers in the documentation. Simple variables are created using the tag '''[set_variable]''':&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=36&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
The tag defines the name and the value of the variable.&lt;br /&gt;
&lt;br /&gt;
Next, we can access the variable value using the variable name prefixed with a dollar sign $.&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     [filter]&lt;br /&gt;
         id=$unit.id&lt;br /&gt;
     [/filter]&lt;br /&gt;
     moves=$simpleVariable&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This sets the moves of the unit to 36 since '''simpleVariable''' holds 36.&lt;br /&gt;
&lt;br /&gt;
When the line is   executed, the value 36 is substituted to '''$simpleVariable''', so it works as if we wrote:&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     [filter]&lt;br /&gt;
         id=$unit.id&lt;br /&gt;
     [/filter]&lt;br /&gt;
     moves=36&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
Using the same tag, we can change the value of '''simpleVariable''', or make some arithmetic   (see the tag documentation for the whole list).&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     sub=30&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
will change the value to 6 of course. We can even set the variable to another value type:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
We shall not use  '''[set_variable]''' tag anymore. Instead, we shall use the '''VARIABLE''' shortcut:&lt;br /&gt;
&lt;br /&gt;
 {VARIABLE simpleVariable &amp;quot;Delfador the Great&amp;quot;}&lt;br /&gt;
stands for:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
We shall not use the arithmetic variations of '''set_variable''' either. Instead we shall use the   '''formulaAI''' syntax which is much more natural. Instead of:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
      name=simpleVariable&lt;br /&gt;
      value=35&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
 [set_variable]&lt;br /&gt;
       name=simpleVariable&lt;br /&gt;
       add=$anotherVariable&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
we shall write:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
     value=&amp;quot;$(35 + $anotherVariable)&amp;quot;&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
: # or&lt;br /&gt;
 {VARIABLE simpleVariable &amp;quot;$(35 + $anotherVariable)&amp;quot;}&lt;br /&gt;
The formulaAI syntax is easy to use, the important thing is to always put the formula in this   sequence: “'''$( …''' here comes the formula '''… )'''”&lt;br /&gt;
In other words, '''$simpleVariable''' can be written everywhere you want  to use the value of   '''simpleVariable.'''&lt;br /&gt;
Clearing variables can be done using the '''[clear_variable]''' tag:&lt;br /&gt;
 [clear_variable]&lt;br /&gt;
     name=simpleVariable&lt;br /&gt;
 [/clear_variable]&lt;br /&gt;
: # or using the following macro to delete more than one variable                                                                                      {CLEAR_VARIABLE simpleVariable,anotherOne,count} [[Please note the CLEAR_VARIABLE macro will not work if your variables names contain spaces or commas. It’s one good reason to avoid them.|&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Containers&amp;lt;/u&amp;gt; ====&lt;br /&gt;
What is a container?&lt;br /&gt;
It is a variable holding more than a simple value.&lt;br /&gt;
A good example is the unit variable created automatically in '''moveto''' and '''attack''' events. It contains the full description of a unit, not only its name and its id. Containers are useful to store related values in a pack. All these different values are called “members” of the created container. Instead of writing this:&lt;br /&gt;
 {VARIABLE heroName &amp;quot;Delfador&amp;quot;}&lt;br /&gt;
 {VARIABLE heroGold 250}&lt;br /&gt;
 {VARIABLE heroFame 127}&lt;br /&gt;
 {VARIABLE heroFullName &amp;quot;Delfador the Great&amp;quot;}&lt;br /&gt;
we can pack all this in a “hero” variable using '''[set_variables]''' (notice the ‘s’)&lt;br /&gt;
 [set_variables]&lt;br /&gt;
     name=hero&lt;br /&gt;
     [value]&lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;&lt;br /&gt;
         gold=250&lt;br /&gt;
         fame=127&lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;&lt;br /&gt;
     [/value]&lt;br /&gt;
 [/set_variables]&lt;br /&gt;
Then, to get the values stored in the container, we shall use the $ sign as before, but appending the member name and a dot:[[That’s why dots are forbidden in variable names : they are used to specify members.|&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
 $hero.name -&amp;gt; Delfador&lt;br /&gt;
 $hero.gold -&amp;gt; 250&lt;br /&gt;
And if we want to change a value, the “gold” member for instance:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=hero.gold&lt;br /&gt;
     add=100&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
It’s important to note that here, we changed the “gold” member as if it was a single variable whose name is “'''hero.gold'''”. We can also clear a member of the container in the same way:&lt;br /&gt;
 {CLEAR_VARIABLE hero.fullName}&lt;br /&gt;
This will delete the '''fullName''' member permanently. Note it will not only clear the value, but   clear the member itself. Clearing the value would be:&lt;br /&gt;
 {VARIABLE hero.fullName &amp;quot;&amp;quot;}&lt;br /&gt;
Can we add later a member to an existing container ? Yes, it can be done:&lt;br /&gt;
 {VARIABLE hero.hasStaff yes}&lt;br /&gt;
this creates the member hasStaff and set it to yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;A glance into the pit&amp;lt;/u&amp;gt; === &lt;br /&gt;
&lt;br /&gt;
All this will be clearer if we take a look at the way variables are stored. Opening a savegame with a text editor, we should find a part like this one:&lt;br /&gt;
 [replay_start]  &lt;br /&gt;
     id=&amp;quot;&amp;quot;&lt;br /&gt;
     [variables]  &lt;br /&gt;
         damage_inflicted=18&lt;br /&gt;
         heal_amount=10  &lt;br /&gt;
         side_number=1  &lt;br /&gt;
         turn_number=26  &lt;br /&gt;
         x1=8  &lt;br /&gt;
         x2=0  &lt;br /&gt;
         y1=8  &lt;br /&gt;
         y2=0  &lt;br /&gt;
         simpleVariable=35  &lt;br /&gt;
         [hero]  &lt;br /&gt;
             name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
             gold=250  &lt;br /&gt;
             fame=127  &lt;br /&gt;
             fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
         [/hero]  &lt;br /&gt;
         ...  &lt;br /&gt;
&lt;br /&gt;
Here are our variables ! We can see simple ones are a pair name/value separated with an equal &lt;br /&gt;
sign.[[That’s why = signs are forbidden in variables names : it corrupts savegames.|&amp;lt;sup&amp;gt;4)&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Container are stored in a WML block whose name is the variable name.  &lt;br /&gt;
Actually, it’s just like folders and files on your hard disk. Each name/value pair is like a file,  &lt;br /&gt;
and other tags like folders. This explains the syntax used: '''set_variable''' and '''clear_variable''' operate on name/value pairs, and you use the dot to specify the path to the line you want to create or modify, for example '''hero.name'''.&lt;br /&gt;
Using '''set_variable''' creates a line if it exists not. So we can use it to add lines to the hero &lt;br /&gt;
container using '''hero.'''something name, just as we can add a new line at the first level. &lt;br /&gt;
Now, we can understand better what a container is. It’s a WML block, just as an ordinary tag, &lt;br /&gt;
and can hold &amp;lt;u&amp;gt;any valid WML content&amp;lt;/u&amp;gt;. Look at this: &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=aVar  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=capture&lt;br /&gt;
         first_time_only=no  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             side=3  &lt;br /&gt;
             type=orc           &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         [set_variable]  &lt;br /&gt;
             name=tmp  &lt;br /&gt;
             rand=1..2  &lt;br /&gt;
         [/set_variable]  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]                    &lt;br /&gt;
This is perfectly valid and creates this container variable:  &lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=3  &lt;br /&gt;
         type=orc  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar]                                                    &lt;br /&gt;
We can modify members in the sub blocks too, using the full path to them, separated with &lt;br /&gt;
dots. For instance:&lt;br /&gt;
 {VARIABLE aVar.set_variable.rand “1..5”}  &lt;br /&gt;
or  &lt;br /&gt;
 {VARIABLE aVar.filter.side 2}.  &lt;br /&gt;
Capito ?  &lt;br /&gt;
&lt;br /&gt;
We can delete members, values or even whole blocks in the same way:  &lt;br /&gt;
 {CLEAR_VARIABLE aVar.filter.type}&lt;br /&gt;
will remove the key ‘type’ in the filter block:&lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=3  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar]  &lt;br /&gt;
  &lt;br /&gt;
 {CLEAR_VARIABLE aVar.filter } will remove the whole filter block:  &lt;br /&gt;
  &lt;br /&gt;
 [aVar]  &lt;br /&gt;
     name=capture  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         rand=1..2  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 [/aVar] &lt;br /&gt;
This example is rather confusing because this variable looks much more like a piece of code  &lt;br /&gt;
than data (and it’s part of the content of an event, of course). But, if you want to follow us to  &lt;br /&gt;
the deeper of darkness, you should already face this ominous truth: data and code are not  &lt;br /&gt;
separated in WML, and it’s possible to modify the code with data manipulation instructions.  &lt;br /&gt;
Fortunately with some limits. Actually, you can only modify from WML what can be put into  &lt;br /&gt;
a variable: units, locations, and some code blocks, but you can’t directly access to scenario  &lt;br /&gt;
level. &lt;br /&gt;
&lt;br /&gt;
A more usual example is the unit container. '''Moveto''' events create a unit variable holding the  &lt;br /&gt;
full description of the moving unit. When pushed in your torture room (the ‘unit’ variable)  &lt;br /&gt;
you’re allowed to access any field of the unit. Exact composition of a unit block can be  &lt;br /&gt;
fetched in a savegame or with ''':inspect''' in debug mode. It’s rather complex. Here is an  &lt;br /&gt;
example (many lines have been deleted, particularly animations):&lt;br /&gt;
 [unit]  &lt;br /&gt;
     flying=yes  &lt;br /&gt;
     gender=&amp;quot;female&amp;quot;  &lt;br /&gt;
     hitpoints=26  &lt;br /&gt;
     id=&amp;quot;Lestiviel&amp;quot;  &lt;br /&gt;
     image=&amp;quot;units/elves-wood/shaman.png&amp;quot;  &lt;br /&gt;
     max_experience=26  &lt;br /&gt;
     max_hitpoints=26  &lt;br /&gt;
     max_moves=5  &lt;br /&gt;
     moves=5  &lt;br /&gt;
     name=_&amp;quot;Lestiviel&amp;quot;  &lt;br /&gt;
     overlays=&amp;quot;misc/hero-icon.png&amp;quot;  &lt;br /&gt;
     profile=&amp;quot;portraits/Lestiviel-y.png&amp;quot;  &lt;br /&gt;
     race=&amp;quot;elf&amp;quot;  &lt;br /&gt;
     [attack]  &lt;br /&gt;
         damage=3  &lt;br /&gt;
         description=_&amp;quot;staff&amp;quot;  &lt;br /&gt;
         icon=&amp;quot;attacks/druidstaff.png&amp;quot;  &lt;br /&gt;
         name=&amp;quot;staff&amp;quot;  &lt;br /&gt;
         number=2  &lt;br /&gt;
         range=&amp;quot;melee&amp;quot;  &lt;br /&gt;
         type=&amp;quot;impact&amp;quot;  &lt;br /&gt;
     [/attack]  &lt;br /&gt;
     [attack]  &lt;br /&gt;
         damage=3  &lt;br /&gt;
         description=_&amp;quot;entangle&amp;quot;  &lt;br /&gt;
         name=&amp;quot;entangle&amp;quot;  &lt;br /&gt;
         number=2  &lt;br /&gt;
         range=&amp;quot;ranged&amp;quot;  &lt;br /&gt;
         type=&amp;quot;impact&amp;quot;  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             [slow]  &lt;br /&gt;
                 description=_&amp;quot;Slow:&amp;quot;  &lt;br /&gt;
                 id=&amp;quot;slow&amp;quot;  &lt;br /&gt;
                 name=_&amp;quot;slows&amp;quot;  &lt;br /&gt;
             [/slow]  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
     [/attack]  &lt;br /&gt;
     [modifications]  &lt;br /&gt;
         [trait]  &lt;br /&gt;
             description=_&amp;quot;Zero upkeep&amp;quot;  &lt;br /&gt;
             female_name=_&amp;quot;female^loyal&amp;quot;  &lt;br /&gt;
             id=&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             male_name=_&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             [effect]  &lt;br /&gt;
                 apply_to=&amp;quot;loyal&amp;quot;  &lt;br /&gt;
             [/effect]  &lt;br /&gt;
         [/trait]  &lt;br /&gt;
         [trait]  &lt;br /&gt;
             female_name=_&amp;quot;female^intelligent&amp;quot;  &lt;br /&gt;
             id=&amp;quot;intelligent&amp;quot;  &lt;br /&gt;
             male_name=_&amp;quot;intelligent&amp;quot;  &lt;br /&gt;
             [effect]  &lt;br /&gt;
                 apply_to=&amp;quot;max_experience&amp;quot;  &lt;br /&gt;
                 increase=&amp;quot;-20%&amp;quot;  &lt;br /&gt;
             [/effect]  &lt;br /&gt;
         [/trait]  &lt;br /&gt;
     [/modifications]  &lt;br /&gt;
 [/unit]&lt;br /&gt;
Here we have a problem: this unit has two attack blocks and two traits blocks. How can we  &lt;br /&gt;
access them ? Writing only '''$unit.attack.name''' can’t be correct since we have two blocks. We  &lt;br /&gt;
have here our first example of arrays. Arrays are lists of WML blocks sharing the same name (here '''attack''' or '''modifications.trait'''). The blocks in arrays are implicitly numbered in the &lt;br /&gt;
order they are written, and we can use this index to state which one we want:&lt;br /&gt;
&lt;br /&gt;
 $unit.attack[0].name -&amp;gt; &amp;quot;staff&amp;quot;  &lt;br /&gt;
 $unit.attack[1].name -&amp;gt; &amp;quot;entangle&amp;quot;  &lt;br /&gt;
        &lt;br /&gt;
 $unit.modifications.trait[0].id -&amp;gt; &amp;quot;loyal&amp;quot;  &lt;br /&gt;
 $unit.modifications.trait[1].id -&amp;gt; &amp;quot;intelligent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note: Indexes begins with 0. So, can we modify the value of the intelligent trait using  &lt;br /&gt;
VARIABLE ? Yes, just do it:  &lt;br /&gt;
  &lt;br /&gt;
 {VARIABLE $unit.modifications.trait[1].increase &amp;quot;-50%&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
Does this modification apply to the unit ? Not immediately. You should use '''[unstore_unit]'''  &lt;br /&gt;
first to pull them out of your torture room, and then… well, it works for some values, but not  &lt;br /&gt;
all of them. There is an automatic healing process at work and some unit properties are  &lt;br /&gt;
overwritten when '''[unstore_unit]''' happens, but the variable itself is really changed. You can  &lt;br /&gt;
verify this using ''':inspect'''.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;More with arrays&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Arrays can be created using the '''[set_variables]''' tag. In it, we can repeat the '''[value][/value]'''  &lt;br /&gt;
block at will, and this will create a container array: &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=heroes  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
         gold=250  &lt;br /&gt;
         fame=127  &lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         gold=125  &lt;br /&gt;
         fame=10  &lt;br /&gt;
         fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
     [value]  &lt;br /&gt;
         name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
         gold=1258  &lt;br /&gt;
         fame=250  &lt;br /&gt;
         fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
This will create three [heroes] blocks numbered from 0 to 2.  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
     gold=250  &lt;br /&gt;
     fame=127  &lt;br /&gt;
     fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
 [/heroes]  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
     gold=125  &lt;br /&gt;
     fame=10  &lt;br /&gt;
     fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
 [/heroes]  &lt;br /&gt;
 [heroes]  &lt;br /&gt;
     name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
     gold=1258  &lt;br /&gt;
     fame=250  &lt;br /&gt;
     fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
 [/heroes]&lt;br /&gt;
Arrays all have a special property named '''length'''. It holds the number of blocks in the array.  &lt;br /&gt;
So here:  &lt;br /&gt;
 $heroes.length -&amp;gt; 3   &lt;br /&gt;
&lt;br /&gt;
 $unit.modifications.trait.length -&amp;gt; 2&lt;br /&gt;
(from the previous ‘unit’ example)  &lt;br /&gt;
  &lt;br /&gt;
Another way to create arrays is using '''[store_unit]''' and '''[store_locations]''' tags, or  &lt;br /&gt;
'''[set_variables]''' when using the '''split''' key to split a string.  &lt;br /&gt;
  &lt;br /&gt;
All these arrays can be modified: we can add later a block or delete it. Deletion is done with  &lt;br /&gt;
the '''[clear_variable]''' tag:&lt;br /&gt;
 {CLEAR_VARIABLE heroes[1]}  &lt;br /&gt;
This will delete the Konrad record. Please note that the &amp;lt;u&amp;gt;array will be renumbered&amp;lt;/u&amp;gt;: so the Lisar record will now have the index 1.&lt;br /&gt;
&lt;br /&gt;
Adding blocks can be done with '''[set_variables]''' using the additional key '''mode'''. By default, &lt;br /&gt;
'''[set_variables]''' creates a new array (or container), erasing any previous variable with the  &lt;br /&gt;
same name. But, using one of the different modes allows to add new blocks in various places:  &lt;br /&gt;
  &lt;br /&gt;
* replace: will clean the array name and replace it with given data, it’s the default.  &lt;br /&gt;
* append: will append given data to the current array  &lt;br /&gt;
* merge: will merge in the given data into name  &lt;br /&gt;
* insert: will insert the given data at the index specified in the name attribute, such as  &lt;br /&gt;
name=my_array[1].  &lt;br /&gt;
  &lt;br /&gt;
Note that '''[store_unit]''' has also a '''mode''' key allowing to append more units blocks to an array.  &lt;br /&gt;
  &lt;br /&gt;
You can place any kind of block in an array, but usually, it’s good practice to avoid meddling  &lt;br /&gt;
different kind of records (for instance units and locations). The reason is most often, arrays  &lt;br /&gt;
are fetched and manipulated in loops. Loops are much more easy to program when all records  &lt;br /&gt;
have the same structure.  &lt;br /&gt;
The '''FOREACH''' macro is most often used for this purpose. It takes an array name and a  &lt;br /&gt;
variable name as arguments. The variable will contain an index incremented by one on each  &lt;br /&gt;
step of the loop by the ending macro '''NEXT'''. For instance, we can summarize the wealth of  &lt;br /&gt;
our heroes with this code:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [set_variable]  &lt;br /&gt;
         name=tmp  &lt;br /&gt;
         add=$heroes[$index].gold  &lt;br /&gt;
     [/set_variable]  &lt;br /&gt;
 {NEXT index}  &lt;br /&gt;
 &lt;br /&gt;
 [message]  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     message=&amp;quot;Team has $tmp gold.&amp;quot;  &lt;br /&gt;
 [/message]  &lt;br /&gt;
Here, we accumulate the gold amount of our heroes in the variable '''tmp'''. The loop will begin  &lt;br /&gt;
with '''index'''=0 and repeat the code inserted between '''FOREACH''' and '''NEXT''', incrementing the value of index by one and will stop when '''index=heroes.length'''.  &lt;br /&gt;
'''FOREACH''' is easy to use, but one should be aware of two things:&lt;br /&gt;
:- make sure you don’t use the index variable elsewhere: it shall be cleared at the end.  &lt;br /&gt;
:- when using such a loop to delete some records. For instance this:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=heroes[$index].name  &lt;br /&gt;
             equals=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             {CLEAR_VARIABLE heroes[$index]}  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
 {NEXT index}  &lt;br /&gt;
will not work exactly as expected. As we saw earlier, the array will be renumbered when the  &lt;br /&gt;
“Konrad” record is deleted. So the next record will take the “Konrad” index, and, since index  &lt;br /&gt;
is incremented at the end of the step, &amp;lt;u&amp;gt;the record following “Konrad” will be skipped&amp;lt;/u&amp;gt;. The  &lt;br /&gt;
correct way to do this is fetching the array in reverse order[[Less easy because there is no macro for that.|&amp;lt;sup&amp;gt;5)&amp;lt;/sup&amp;gt;]] or decrementing the index after the deletion:  &lt;br /&gt;
 {FOREACH heroes index}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=heroes[$index].name  &lt;br /&gt;
             equals=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             {CLEAR_VARIABLE heroes[$index]}  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name=index  &lt;br /&gt;
                 sub=1  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
 {NEXT index}&lt;br /&gt;
=== &amp;lt;u&amp;gt;First steps into darkness&amp;lt;/u&amp;gt; ===  &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Using simple strings in names&amp;lt;/u&amp;gt; ==== &lt;br /&gt;
Consider this variable name: &lt;br /&gt;
 heroes_$index  &lt;br /&gt;
How to understand this? At execution time, '''$index''' will be replaced with the value of the  &lt;br /&gt;
variable index[[It would be better if it exists…  |&amp;lt;sup&amp;gt;6)&amp;lt;/sup&amp;gt;]]. Suppose it contains 2, the variable used will then be '''heroes_2'''. Of course, it&lt;br /&gt;
can be anything else, “Konrad” for instance. Then the variable will be '''heroes_Konrad'''. &lt;br /&gt;
&lt;br /&gt;
Look at these macros: &lt;br /&gt;
 #define LSB_STOREPERSO ID KILL  &lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=${ID}  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         variable=${ID}_back  &lt;br /&gt;
         kill={KILL}  &lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
 #define LSB_RECALLPERSO ID XY  &lt;br /&gt;
     [unstore_unit]  &lt;br /&gt;
         variable=${ID}_back  &lt;br /&gt;
         find_vacant=yes  &lt;br /&gt;
         {XY}  &lt;br /&gt;
     [/unstore_unit]  &lt;br /&gt;
 #enddef&lt;br /&gt;
They store and retrieve an unit using it’s ID to create the name of the variable. The unit ID is  &lt;br /&gt;
found in the variable whose name is given in the parameter ID. For instance, it can be '''unit.id''' in a moveto event:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     # ... the filter will come here  &lt;br /&gt;
     {LSB_STOREPERSO unit.id yes} # the unit disappear  &lt;br /&gt;
     # but is stored in a variable named after its id,  &lt;br /&gt;
     # for instance &amp;quot;Konrad_back&amp;quot;  &lt;br /&gt;
 [/event]  &lt;br /&gt;
The variables created using this code shouldn’t be confused with an array. They’re individual  &lt;br /&gt;
variables, even if they look more or less the same in the ''':inspect''' display. Particularly, they  &lt;br /&gt;
can’t be fetched using a '''FOREACH''' loop. But if this is not needed, one can find this better to  &lt;br /&gt;
create bi-dimensional arrays, particularly because distinct records are easier to identify in the  &lt;br /&gt;
''':inspect''' display.  &lt;br /&gt;
In this code, we use quite the same system as above to create a bi-dimensional array to store  &lt;br /&gt;
boats and units on board. The unit ID (of the boat) is used to create the name of an array  &lt;br /&gt;
storing the units it contains, whose name is '''RF_$ID''', for example '''RF_B1, RF_B2''' and so on.  &lt;br /&gt;
So, in a '''moveto''' event of one of these boats, '''RF_$unit.id''' is the name of the array  &lt;br /&gt;
containing the crew. This code make them pop out.  &lt;br /&gt;
 {FOREACH RF_$unit.id| n}  &lt;br /&gt;
     [unstore_unit]  &lt;br /&gt;
         variable=RF_$unit.id|[$n]  &lt;br /&gt;
         x,y=$rft[0].x,$rft[0].y  &lt;br /&gt;
         find_vacant=yes  &lt;br /&gt;
     [/unstore_unit]                     &lt;br /&gt;
 {NEXT n}&lt;br /&gt;
Fine, but here, the engine could have a problem: what is exactly RF_$unit.id[$n] ? It can  &lt;br /&gt;
be :  &lt;br /&gt;
:- the nth record of the array RF_$unit.id (if unit.id = B1, it would be RF_B1[$n])  &lt;br /&gt;
:- the simple variable named RF_$unit.id[$n], where the suffix is taken from  $unit.id array.  &lt;br /&gt;
That’s why the pipe character | is appended to the array name. It states the first case is the  &lt;br /&gt;
good one, or in other words, the array name is delimited between the $ sign and the pipe.   &lt;br /&gt;
  &lt;br /&gt;
This is one way to create and use bi-dimensional arrays. But it’s possible to create real bi- &lt;br /&gt;
dimensional array: they are arrays containing arrays (which could contain arrays as well, and  &lt;br /&gt;
so on… but will you really need that ?)  &lt;br /&gt;
Here is the way to do this. We shall use here our “heroes” array, and store it twice into a new  &lt;br /&gt;
created array:  &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=biDim  &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=value  &lt;br /&gt;
         variable=heroes  &lt;br /&gt;
     [/insert_tag]  &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=value  &lt;br /&gt;
         variable=heroes # of course it could be something different  &lt;br /&gt;
     [/insert_tag]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
'''Insert_tag''' creates a new block whose tag is equal to its '''name''' key, so each '''insert_tag''' will create a block: &lt;br /&gt;
 [value]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Delfador&amp;quot;  &lt;br /&gt;
         gold=250  &lt;br /&gt;
         fame=127  &lt;br /&gt;
         fullName=&amp;quot;Delfador the Great&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Konrad&amp;quot;  &lt;br /&gt;
         gold=125  &lt;br /&gt;
         fame=10  &lt;br /&gt;
         fullName=&amp;quot;Konrad the Heir&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
     [heroes]  &lt;br /&gt;
         name=&amp;quot;Lisar&amp;quot;  &lt;br /&gt;
         gold=1258  &lt;br /&gt;
         fame=250  &lt;br /&gt;
         fullName=&amp;quot;Princess Lisar&amp;quot;  &lt;br /&gt;
     [/heroes]  &lt;br /&gt;
 [/value]  &lt;br /&gt;
Still with us? OK, now to access our heroes we shall use the ordinary syntax. For instance:&lt;br /&gt;
 $biDim[0].heroes[1].name -&amp;gt; Konrad  &lt;br /&gt;
  &lt;br /&gt;
And of course, one can walk all the array using a nested FOREACH loop.  &lt;br /&gt;
 {FOREACH biDim i}  &lt;br /&gt;
     {FOREACH biDim[$i].heroes index}  &lt;br /&gt;
         [if]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=biDim[$i].heroes[$index].gold  &lt;br /&gt;
                 less_than=100  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
             [then]  &lt;br /&gt;
                 [set_variable]  &lt;br /&gt;
                     name=biDim[$i].heroes[$index].gold  &lt;br /&gt;
                     add=100  &lt;br /&gt;
                 [/set_variable]  &lt;br /&gt;
             [/then]  &lt;br /&gt;
         [/if]  &lt;br /&gt;
     {NEXT index}  &lt;br /&gt;
 {NEXT i}  &lt;br /&gt;
This adds some gold to the purse of the poorest heroes of biDim array.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Using variables strings in events names&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
This syntax:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=$myEvent  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/message]  &lt;br /&gt;
Is perfectly valid. Of course, '''myEvent''' should contain some valid event name, consistent with  &lt;br /&gt;
the event body. One use of this is to specify turn numbers. For instance:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=turn $afterDark  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
With this you can set '''afterDark''' in order to state when the event should fire (it must then  &lt;br /&gt;
contain a number or a string of the form '''side number'''). Even more useful is the way to fire an  &lt;br /&gt;
event some turn after another occurred. Suppose we want to raise a storm two turns after some  &lt;br /&gt;
hero visited a particular location. Then we shall write:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     # ... the moveto filter will come here  &lt;br /&gt;
 &lt;br /&gt;
     [event]  &lt;br /&gt;
         name=&amp;quot;turn $($turn_number + 2)&amp;quot;  &lt;br /&gt;
 &lt;br /&gt;
         # start the storm  &lt;br /&gt;
     [/event]  &lt;br /&gt;
 [/event]  &lt;br /&gt;
This will create the nested event and make it fire 2 turns later.  &lt;br /&gt;
It can be used with '''fire_event''' too. This code sets the variable '''myEvent''' according to the  &lt;br /&gt;
incomer type, then fires the corresponding event.  &lt;br /&gt;
 [switch]  &lt;br /&gt;
     name=unit.type  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Elvish Sorceress  &lt;br /&gt;
         {VARIABLE myEvent storm}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Troll Warrior  &lt;br /&gt;
         {VARIABLE myEvent monster}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
     [case]  &lt;br /&gt;
         value=Mermaid Initiate  &lt;br /&gt;
         {VARIABLE myEvent flood}  &lt;br /&gt;
     [/case]  &lt;br /&gt;
 [/switch]  &lt;br /&gt;
 &lt;br /&gt;
 # --- somewhat later…  &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
     name=$myEvent  &lt;br /&gt;
 [/fire_event]  &lt;br /&gt;
&lt;br /&gt;
 # ... of course, these events should be defined elsewhere  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=storm  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=monster  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=flood  &lt;br /&gt;
     ...  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Voodoo and black magics&amp;lt;/u&amp;gt; ===  &lt;br /&gt;
« He who enters this place must quit all hopes… »&lt;br /&gt;
&lt;br /&gt;
At this point, maybe you begin to suspect many things can be replaced with variables,  &lt;br /&gt;
including parts of the code itself. That’s true and interesting in some cases, but it should be &lt;br /&gt;
clear that using the features explained later creates code much more difficult to understand  &lt;br /&gt;
and to debug. You certainly shall discover that much more can be done than what we  &lt;br /&gt;
describe, but here, we shall restrain ourselves to some limits. Trespassing them is most often  &lt;br /&gt;
getting caught in mysterious traps, and most often, absolutely useless.  &lt;br /&gt;
In other words, you’re at risk to fall into deep darkness under heavy bugs attack. So take  &lt;br /&gt;
care…  &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Existing blocks customization&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
Since we can add members to existing containers, why not add some to documented  &lt;br /&gt;
containers like units or objects ? It’s perfectly possible, and finally harmless (You’re only are at risk your code become broken if the key name is used in further versions of Wesnoth) [[You can minimize the risk using special key names like 'Pyro_level' instead of only 'level'… or write a feature request! |&amp;lt;sup&amp;gt;7)&amp;lt;/sup&amp;gt;]] . WML just ignores what it knows nothing of. In units blocks, you have a special block named '''variables'''  &lt;br /&gt;
where you can add safely all what you want, but it’s common to find in campaigns additions  &lt;br /&gt;
to the '''status''' block. For instance:  &lt;br /&gt;
 {VARIABLE unit.status.isHero yes}&lt;br /&gt;
creates a new flag named '''isHero''' in unit status. Of course, the game engine will not display  &lt;br /&gt;
anything as it does with '''slow''' and '''poison''' status key, but you can use it in filters:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=die  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter_condition]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=unit.status.isHero  &lt;br /&gt;
             boolean_equals=yes  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
     [/filter_condition]  &lt;br /&gt;
      …  &lt;br /&gt;
  &lt;br /&gt;
The same can be done in objects. In this object block, the programmer added two custom  &lt;br /&gt;
keys, category and price.  &lt;br /&gt;
 [object]  &lt;br /&gt;
     name= _ &amp;quot;Poisonous Bow&amp;quot;  &lt;br /&gt;
     image=items/bow.png  &lt;br /&gt;
     description= _ &amp;quot;This bow deals 20% more damage than other bows, it shots poisonned arrows to enemies and is also quicker.&amp;quot;  &lt;br /&gt;
     category=bows  &lt;br /&gt;
     price=150  &lt;br /&gt;
     [effect]  &lt;br /&gt;
         apply_to=new_attack  &lt;br /&gt;
         name=longbow  &lt;br /&gt;
         type=pierce  &lt;br /&gt;
         range=ranged  &lt;br /&gt;
         damage=12  &lt;br /&gt;
         number=4&lt;br /&gt;
         movement_used=0  &lt;br /&gt;
         icon=attacks/bow-elven-magic.png  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             {WEAPON_SPECIAL_POISON}  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
     [/effect]  &lt;br /&gt;
 [/object] &lt;br /&gt;
And when this object is applied to an unit, the extra keys are not deleted or modified in any  &lt;br /&gt;
way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Passing “parameters” to an event&amp;lt;/u&amp;gt; ====  &lt;br /&gt;
The trick explained here is for use with the '''fire-event''' tag. As you know, this tag allows to  &lt;br /&gt;
trigger an  event (custom or not) from another piece of code. Really useful for instance, when  &lt;br /&gt;
you don’t want to repeat the same code in many places. As the reference manual says, it can  &lt;br /&gt;
be used as some sort of subroutine call.  &lt;br /&gt;
Fine, but in programming languages, subroutines calls accept parameters for use of the  &lt;br /&gt;
subroutine, and '''fire_event''' don’t.  &lt;br /&gt;
Suppose we want to display a nice message which can be spoken by various units. Of course,  &lt;br /&gt;
we can use role or a global variable '''whoSpeaks''' to specify who is speaking. For instance:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [message]  &lt;br /&gt;
         speaker=$whoSpeaks  &lt;br /&gt;
         message=_&amp;quot;Vanish, foul messengers of Sauron…&amp;quot; # and so on…  &lt;br /&gt;
     [/message]  &lt;br /&gt;
 [/event]  &lt;br /&gt;
We can fire this event with:        &lt;br /&gt;
 {VARIABLE whoSpeaks Gandalf} # or any other character  &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
      name=nice_speech  &lt;br /&gt;
 [/fire_event]&lt;br /&gt;
But we would have to clear the whoSpeaks variable later. There is another way. In the  &lt;br /&gt;
fire_event tag documentation, one can find:  &lt;br /&gt;
'''[primary_attack]''': Information passed to the primary attack filter and $weapon variable on  &lt;br /&gt;
the new event.  &lt;br /&gt;
 Of course, we have no attacker and no attack here, but what happens if we set something here  &lt;br /&gt;
like : &lt;br /&gt;
 [fire_event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [primary_attack]  &lt;br /&gt;
         whoSpeaks=Gandalf  &lt;br /&gt;
     [/primary_attack]  &lt;br /&gt;
 [/fire_event]  &lt;br /&gt;
 &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=nice_speech  &lt;br /&gt;
     [message]  &lt;br /&gt;
         speaker=$weapon.whoSpeaks  &lt;br /&gt;
         message=_&amp;quot;Vanish, foul messengers of Sauron…&amp;quot; # and so on…  &lt;br /&gt;
     [/message]  &lt;br /&gt;
 [/event]&lt;br /&gt;
Well, it pure voodoo but it works. Of course, one can pass anything in the '''primary_attack'''  &lt;br /&gt;
block, not only a single value. The block itself will be discarded when he event is finished,  &lt;br /&gt;
just like call parameters in subroutines.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;Dynamic code with insert_tag&amp;lt;/u&amp;gt; ====&lt;br /&gt;
We have already seen a use of this tag above. Its effect is to insert at execution time a WML  &lt;br /&gt;
block contained in a variable. It is like a macro, but macro substitution occurs once when  &lt;br /&gt;
loading the code which makes a huge difference. With '''insert_tag''', the variable used (i.e. the  &lt;br /&gt;
code executed) can change during the scenario.  &lt;br /&gt;
First step is creating a container holding the WML block you want to execute. For instance,  &lt;br /&gt;
this action:  &lt;br /&gt;
 [harm_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     amount=10  &lt;br /&gt;
     animate=yes  &lt;br /&gt;
     kill=no  &lt;br /&gt;
 [/harm_unit]   &lt;br /&gt;
The easiest way is to use a macro to define the block content:  &lt;br /&gt;
  &lt;br /&gt;
 #define BLOCK_CONTENT  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     amount=10  &lt;br /&gt;
     animate=yes  &lt;br /&gt;
     kill=no  &lt;br /&gt;
 #enddef  &lt;br /&gt;
    &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
         name=harmingCode  &lt;br /&gt;
         [value]  &lt;br /&gt;
             {BLOCK_CONTENT}  &lt;br /&gt;
         [/value]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
Else, we should have to create the variable first, and then add the subtag in this way:  &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=harmingCode  &lt;br /&gt;
     [value]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]&lt;br /&gt;
 &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=harmingCode.filter  &lt;br /&gt;
     [value]  &lt;br /&gt;
         x,y=$x1,$y1  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
Notice, we didn’t include the '''[harm_unit]''' tag. Then we can use '''insert_tag''' in this way:  &lt;br /&gt;
 [insert_tag]  &lt;br /&gt;
     name=harm_unit  &lt;br /&gt;
     variable=harmingCode  &lt;br /&gt;
 [/insert_tag]  &lt;br /&gt;
This will produce exactly the original block above. Sometimes, it’s not very practical to  &lt;br /&gt;
define only the block content in the macro (maybe you would like to use it elsewhere, as an  &lt;br /&gt;
ordinary macro). Then you can specify the '''command''' tag in the '''insert_tag'''. This tag does  &lt;br /&gt;
nothing except creating blocks. Then it would be:&lt;br /&gt;
 #define HARM_UNIT  &lt;br /&gt;
    [harm_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             x,y=$x1,$y1  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/harm_unit]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
 &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
          name=harmingCode  &lt;br /&gt;
          [value]  &lt;br /&gt;
              {HARM_UNIT}  &lt;br /&gt;
          [/value]  &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
     # --- somewhere else…  &lt;br /&gt;
 &lt;br /&gt;
     [insert_tag]  &lt;br /&gt;
         name=command  &lt;br /&gt;
         variable=harmingCode  &lt;br /&gt;
     [/insert_tag]&lt;br /&gt;
But… this code works not always. The reason is the $x1, $y1. They are replaced with their values when we create the '''harmingCode''' variable, which is not what we generally want. We want to use the values they hold when the '''insert_tag''' is executed (most often, it’s later), in other words, we want to delay their substitution. To mark these variables to be substituted later , we shall add a pipe character just after the dollar sign:  &lt;br /&gt;
 #define HARM_UNIT  &lt;br /&gt;
     [harm_unit]  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             x,y=$|x1,$|y1  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
         amount=10  &lt;br /&gt;
         animate=yes  &lt;br /&gt;
         kill=no  &lt;br /&gt;
     [/harm_unit]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
Then the code works. And the macro can be used in a normal way too.  &lt;br /&gt;
Pay heed, '''insert_tag''' must be included in some action (event and so on). It works not at the scenario level for instance.  &lt;br /&gt;
As you can see, the '''insert_tag''' allows to do many things, but in our opinion, should be used scarcely. Here we shall show how it can be used to solve a common problem. Suppose we want to list the objects of a unit in a option message, let the user choose an object and remove it from the unit. This can be done with this kind of code:&lt;br /&gt;
 [message]  &lt;br /&gt;
     message=&amp;quot;Choose an item to drop&amp;quot;  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Fabulous speed potion&amp;quot;  &lt;br /&gt;
         [show_if]  &lt;br /&gt;
             # here a conditional expression stating if the unit has  &lt;br /&gt;
             # the fabulous item.  &lt;br /&gt;
         [/show_if]  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
         # more options blocks...                            &lt;br /&gt;
 [/message]  &lt;br /&gt;
The '''show_if''' tag prevents the line to show if the unit has not the object. There are two problems with this code. First, the condition is not easy to write: the object list of the unit must be searched for that particular object. Next, the message block must have an option for each possible item. No problem if you have only a few, but when, like in some add-ons we shall name not, you have near one hundred…  &lt;br /&gt;
Here, we shall create dynamically a message block listing all the objects in the modification block of the unit. Thus, we don’t need the '''show_if''' tag et we want something like that:&lt;br /&gt;
 [message]  &lt;br /&gt;
     message=&amp;quot;Choose an item to drop&amp;quot;  &lt;br /&gt;
     speaker=narrator  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Fabulous speed potion&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
     [option]  &lt;br /&gt;
         message=&amp;quot;Amazing flashing bow&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... drop the item  &lt;br /&gt;
         [/command]  &lt;br /&gt;
         [/option]  &lt;br /&gt;
             # ... more options if more objects  &lt;br /&gt;
         [option]  &lt;br /&gt;
             message=&amp;quot;Exit&amp;quot;  &lt;br /&gt;
         [command]  &lt;br /&gt;
             # ... exit the loop  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/option]  &lt;br /&gt;
 [/message]  &lt;br /&gt;
So we shall create dynamically this block in a container variable and next use '''insert_tag''' to  &lt;br /&gt;
execute it. The block itself is embedded in a loop which executes until the exit option is  &lt;br /&gt;
chosen (this sets the flag '''t_done'''):&lt;br /&gt;
 # list unit objects  &lt;br /&gt;
 #define LSB_LIST_UNIT_THINGS  &lt;br /&gt;
    {VARIABLE t_done no}  &lt;br /&gt;
 &lt;br /&gt;
     [while]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name=t_done  &lt;br /&gt;
             equals=no  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [do]  &lt;br /&gt;
             {CLEAR_VARIABLE t_menu}  &lt;br /&gt;
             {VARIABLE t_menu.message &amp;quot; Choose an item to drop:&amp;quot;}  &lt;br /&gt;
             {VARIABLE t_menu.speaker narrator}  &lt;br /&gt;
  &lt;br /&gt;
 # here begins the objects listing. They are in the modifications block of the unit  &lt;br /&gt;
             {FOREACH unit.modifications.object nc}  &lt;br /&gt;
                 # creates the option block with the name of the object  &lt;br /&gt;
                 [set_variables]  &lt;br /&gt;
                     name=t_menu.option  &lt;br /&gt;
                     mode=append  &lt;br /&gt;
                        [value]  &lt;br /&gt;
                            message=$unit.modifications.object[$nc].name  &lt;br /&gt;
                            [command]  &lt;br /&gt;
                                # remove the object, or anything else  &lt;br /&gt;
                                {LSB_CLEAR_UNITOBJECT}  &lt;br /&gt;
                            [/command]  &lt;br /&gt;
                         [/value]              &lt;br /&gt;
                 [/set_variables]  &lt;br /&gt;
             {NEXT nc}  &lt;br /&gt;
 &lt;br /&gt;
 # this adds the “exit” option to the end of the list  &lt;br /&gt;
             {VARIABLE nc $t_menu.option.length}  &lt;br /&gt;
                 [set_variables]  &lt;br /&gt;
                     name=t_menu.option  &lt;br /&gt;
                     mode=append  &lt;br /&gt;
                     [value]  &lt;br /&gt;
                         message=&amp;quot;Exit.&amp;quot;  &lt;br /&gt;
                         [command]  &lt;br /&gt;
                             {VARIABLE t_done yes}  &lt;br /&gt;
                         [/command]  &lt;br /&gt;
                     [/value]              &lt;br /&gt;
                 [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
 # this finally displays the list on screen and let the user choose  &lt;br /&gt;
                 [insert_tag]  &lt;br /&gt;
                     name=message  &lt;br /&gt;
                     variable=t_menu  &lt;br /&gt;
                 [/insert_tag]  &lt;br /&gt;
             [/do]  &lt;br /&gt;
         [/while]  &lt;br /&gt;
     {CLEAR_VARIABLE t_menu,nc}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
 &lt;br /&gt;
 # this is an example of use: in a right-click menu item.  &lt;br /&gt;
     [set_menu_item]  &lt;br /&gt;
         id=LSB_drop  &lt;br /&gt;
         description=&amp;quot;Drop items.&amp;quot;  &lt;br /&gt;
         [show_if]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=unit.side  &lt;br /&gt;
                 equals=1  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/show_if]  &lt;br /&gt;
         [command]  &lt;br /&gt;
             {LSB_LIST_UNIT_THINGS}  &lt;br /&gt;
         [/command]  &lt;br /&gt;
     [/set_menu_item]&lt;br /&gt;
Of course, you may want to list not all objects applied to a unit. It’s easy to do that adding a  &lt;br /&gt;
custom key to the objects you want to list, for instance '''droppable=yes''', and testing if it is  &lt;br /&gt;
present before creating the option block.  &lt;br /&gt;
  &lt;br /&gt;
Another example of code managing pickuppable items on the map. We first define those objects using macros. For instance, this one is the core Storm Trident with some additional keys. The '''[object]''' tag is missing in order to use this macro more easily in an '''[insert_tag]'''.  &lt;br /&gt;
 # --- Object definition example, don’t include the [object] tag  &lt;br /&gt;
 #define LSB_STORM_TRIDENT  &lt;br /&gt;
     name=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
     image=items/storm-trident.png  &lt;br /&gt;
     duration=forever  &lt;br /&gt;
     description={RTN_USTR-6}  &lt;br /&gt;
     category=spears  &lt;br /&gt;
     level=2  &lt;br /&gt;
     [effect]  &lt;br /&gt;
         apply_to=new_attack  &lt;br /&gt;
         name=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
         description=&amp;quot;storm trident&amp;quot;  &lt;br /&gt;
         icon=attacks/lightning.png  &lt;br /&gt;
         type=fire  &lt;br /&gt;
         range=ranged  &lt;br /&gt;
         [specials]  &lt;br /&gt;
             {WEAPON_SPECIAL_MAGICAL}  &lt;br /&gt;
         [/specials]  &lt;br /&gt;
         damage=15  &lt;br /&gt;
         number=2  &lt;br /&gt;
     [/effect]  &lt;br /&gt;
  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 1}  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 2}  &lt;br /&gt;
     {LIGHTNING_ANIMATION &amp;quot;storm trident&amp;quot; 3}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
At the beginning of the scenario or even the campaign, we define an object list containing all pickuppable items. Please note it’s the only place we need to modify when creating or deleting an object in our campaign. All the code needed to manage them is generic.  &lt;br /&gt;
 # --- shortcut to store an object into an array  &lt;br /&gt;
 #define LSB_OBJINFO OBJ  &lt;br /&gt;
     [value]  &lt;br /&gt;
         {OBJ}  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
   &lt;br /&gt;
 # This is the main objects list which must be created at first start: it creates an array with all pickuppable items and give them an uid.  &lt;br /&gt;
 #define LSB_CREATEOBJECTS_LIST  &lt;br /&gt;
     [set_variables]  &lt;br /&gt;
         name=Objets  &lt;br /&gt;
         mode=replace  &lt;br /&gt;
         {LSB_OBJINFO {RTN_OBJ_TELNECKLACE} }  &lt;br /&gt;
         {LSB_OBJINFO {RTN_OBJ_AELTHRANK} }  &lt;br /&gt;
         {LSB_OBJINFO {LSB_GOLD} }  &lt;br /&gt;
         {LSB_OBJINFO {LSB_STORM_TRIDENT} }  &lt;br /&gt;
         # add more here at will  &lt;br /&gt;
     [/set_variables] &lt;br /&gt;
  &lt;br /&gt;
     {FOREACH Objets i} # this adds an id to objects  &lt;br /&gt;
         [set_variable]  &lt;br /&gt;
             name=Objets[$i].uid  &lt;br /&gt;
             value=$i  &lt;br /&gt;
         [/set_variable]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
 #enddef  &lt;br /&gt;
Here a macro to drop objects on the map. Note the NUM parameter is the uid created before, not the full object itself. Of course, it can be a variable holding an uid.  &lt;br /&gt;
 #define LSB_DROP_OBJECT NUM X Y  &lt;br /&gt;
     [item] # place the item on the map  &lt;br /&gt;
          image=$Objets[{NUM}].image  &lt;br /&gt;
          x,y={X},{Y}  &lt;br /&gt;
     [/item]  &lt;br /&gt;
     [set_variables] # add it to the dropped objects list  &lt;br /&gt;
         name=D_Objets  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         [value]  &lt;br /&gt;
              x={X}  &lt;br /&gt;
              y={Y}  &lt;br /&gt;
              code={NUM}  &lt;br /&gt;
         [/value]              &lt;br /&gt;
     [/set_variables]  &lt;br /&gt;
 #enddef  &lt;br /&gt;
At last, we can set up a moveto event to trigger the pick up dialog  &lt;br /&gt;
 #define LSB_GETOBJECT FILTER ID  &lt;br /&gt;
     [event]  &lt;br /&gt;
         name=moveto  &lt;br /&gt;
         id=GETOBJECT_{ID}  &lt;br /&gt;
         first_time_only=no  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             [filter_location] # fires only if there is something on the map  &lt;br /&gt;
                 find_in=D_Objets  &lt;br /&gt;
             [/filter_location]  &lt;br /&gt;
             {FILTER} # and for some units  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
 &lt;br /&gt;
         {VARIABLE i $D_Objets.length}  &lt;br /&gt;
         [while] # maybe we have more than one object here  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name=i  &lt;br /&gt;
                 greater_than=0  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
             [do]  &lt;br /&gt;
                 [set_variable]  &lt;br /&gt;
                     name=i  &lt;br /&gt;
                     sub=1  &lt;br /&gt;
                 [/set_variable]  &lt;br /&gt;
                 &lt;br /&gt;
 # message  &lt;br /&gt;
                 [if]  &lt;br /&gt;
                     [variable]  &lt;br /&gt;
                         name=D_Objets[$i].x  &lt;br /&gt;
                         equals=$x1  &lt;br /&gt;
                     [/variable]  &lt;br /&gt;
                     [variable]  &lt;br /&gt;
                         name=D_Objets[$i].y  &lt;br /&gt;
                         equals=$y1  &lt;br /&gt;
                     [/variable]  &lt;br /&gt;
                     [then]                         &lt;br /&gt;
                         [message]  &lt;br /&gt;
                             speaker=narrator  &lt;br /&gt;
                             message=_ &amp;quot;There is a $Objets[$D_Objets[$i].code].name on the ground. Should $unit.name take it ?&amp;quot;  &lt;br /&gt;
                             [option]  &lt;br /&gt;
                                 message=_ &amp;quot;Take it&amp;quot;                                         &lt;br /&gt;
                                 [command]                                     &lt;br /&gt;
                                     # --- give object to unit  &lt;br /&gt;
                                     [insert_tag]  &lt;br /&gt;
                                         name=object  &lt;br /&gt;
                                         variable=Objets[$D_Objets[$i].code]  &lt;br /&gt;
                                     [/insert_tag]  &lt;br /&gt;
                                              &lt;br /&gt;
                                     # --- clear the map  &lt;br /&gt;
                                     [remove_item]                                         &lt;br /&gt;
                                         image=$Objets[$D_Objets[$i].code].image  &lt;br /&gt;
                                         x,y=$unit.x,$unit.y                 &lt;br /&gt;
                                     [/remove_item]  &lt;br /&gt;
                                     {CLEAR_VARIABLE D_Objets[$i]}  &lt;br /&gt;
                                 [/command]  &lt;br /&gt;
                             [/option]  &lt;br /&gt;
                             [option]  &lt;br /&gt;
                                 message= _ &amp;quot;Leave it&amp;quot;  &lt;br /&gt;
                             [/option]  &lt;br /&gt;
                         [/message]  &lt;br /&gt;
                     [/then]&lt;br /&gt;
                 [/if]  &lt;br /&gt;
             [/do]&lt;br /&gt;
         [/while]  &lt;br /&gt;
     [/event]  &lt;br /&gt;
 #enddef&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51423</id>
		<title>FilterWML/Examples - How to use Filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51423"/>
		<updated>2013-06-17T11:47:07Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Using filters in events. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Filtering ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Filters are a very important part of WML language, and a fairly complex too for various  &lt;br /&gt;
reasons. Here, we shall try to explain how to use them with more details than in the reference  &lt;br /&gt;
wiki pages. But the goal is not to replace these pages, and we assume you have at least some  &lt;br /&gt;
knowledge of the various WML filters, namely unit and location filters. The examples given  &lt;br /&gt;
below aren’t always the best way to do things: the goal here is understanding filtering, not to  &lt;br /&gt;
give a complete WML course.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basics: How filters work. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Filtering is narrowing a set of objects to a result set using criteria. Let’s give an example :  &lt;br /&gt;
given a set of cards, if one is asked to select the spades, (s)he will probably check the cards  &lt;br /&gt;
one by one and create two stacks : one containing only the spades, and another containing the  &lt;br /&gt;
unselected cards. This is a very simple filter, where the criterion is « this card has spades  &lt;br /&gt;
colour » and the result set is a card stack. &lt;br /&gt;
The spades cards are said ‘matching’ the filter.  &lt;br /&gt;
If next we’re asked to find the king of spades, most probably, we will not restart from the  &lt;br /&gt;
beginning but only scan the spades stack to find the right card. This is an example of two  &lt;br /&gt;
criteria filter. In WML we would write something like :  &lt;br /&gt;
 [filter]&lt;br /&gt;
     colour=spades&lt;br /&gt;
     value=king&lt;br /&gt;
 [/filter]&lt;br /&gt;
to describe the operation. Criteria are expressions evaluating to true or false. Is this card colour  &lt;br /&gt;
spades ? That’s how we must read the sentence: ‘colour=spades’.  &lt;br /&gt;
Now, stating both criteria must be met is not the only way to combine them:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     colour=spades,diamonds  &lt;br /&gt;
     value=king  &lt;br /&gt;
 [/filter]&lt;br /&gt;
the first expression will be true if a card colour is ‘spades OR diamonds’. It would make no  &lt;br /&gt;
sense to state they should be ‘spades AND diamonds’, of course.  &lt;br /&gt;
In many languages, you must specify how criteria combine using the special keywords ‘OR’  &lt;br /&gt;
and ‘AND’. In WML, you can do so, but most often, you’re not requested to do so. Writing  &lt;br /&gt;
explicitly the logical operators would give something like that:&lt;br /&gt;
 [filter]  &lt;br /&gt;
     [and]  &lt;br /&gt;
         colour=spades  &lt;br /&gt;
         [or]  &lt;br /&gt;
             colour=diamonds  &lt;br /&gt;
         [/or]  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 &lt;br /&gt;
     [and]  &lt;br /&gt;
         value=king  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
or in natural speech: “is card (colour=spades OR colour=diamonds) AND value=king ?” Note  &lt;br /&gt;
here the use of parenthesis. As in algebra, they mean their content must be evaluated prior to  &lt;br /&gt;
apply the last criterion.  &lt;br /&gt;
'''[and]''' and  '''[or]''' subtags are WML equivalents of parenthesis. They are not mandatory (like in some other languages), and this is a cool feature, but can be misleading in complex filters.  &lt;br /&gt;
The rule is:  &lt;br /&gt;
* listed criteria are ''ANDed'', in other words, they must all be true for the object to match the filter.  &lt;br /&gt;
* comma separated lists in a criterion are equivalent to ''ORed'' criteria. &amp;lt;br&amp;gt;In other words, one only is enough for the object to match the filter.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
'''There are some things important to note:'''&lt;br /&gt;
&lt;br /&gt;
* A complex filter can always be split into simpler filters applied in chain, each filter taking as starting set the result set of the former one. In our example, we applied the filter « value=king » to the result set of filter « color=spades ». This is important when building or debugging filters, because complex ones can easily be reduced to a chain of simpler ones.&lt;br /&gt;
&lt;br /&gt;
* Criteria order is not important from a logical point of view. We could have searched the kings first, obtaining the four kings in our result set, and the card of color spade next. The final result is the same. But in WML, for some reasons we shall study later, order can be important.&lt;br /&gt;
&lt;br /&gt;
* Result sets can contain any number of objects. One can’t assume the result set of our filter will contain a single card ‘THE king of spades’. A human being would probably stop the search when finding a king of spades, but filters don’t. If our starting card packet is not a complete set (some cards were lost, a cheater introduced some more, or anything else), you’ll find one, none or many kings of spades. It’s a common error in WML to assume filters will select a single object.&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; &lt;br /&gt;
* Any unit or location will match an empty filter like this one:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
        [filter]  &lt;br /&gt;
        [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
 [/event]&lt;br /&gt;
This event will be triggered on every move of every unit on the map.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; One can be sure only when filtering with ID’s because they are unique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Here now are two versions of the same action, using filters and not.'''  &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]  &lt;br /&gt;
This moves to side 1 all side 2 units except orcs. Please note how filter syntax is after all very close to natural speech. This is why we shall see a good way to design complex filters is writing an accurate sentence describing them first.  &lt;br /&gt;
Using no filter (and assuming ‘all_units’ is an array containing all created units in a scenario) we should write :  &lt;br /&gt;
 {FOREACH all_units i}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name= all_units[$i].side  &lt;br /&gt;
             equals=2  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [and]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name= all_units[$i].race  &lt;br /&gt;
                 not_equals=orc  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/and]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name= all_units[$i].side  &lt;br /&gt;
                 value=1  &lt;br /&gt;
             [/set_variable]  &lt;br /&gt;
             [unstore_unit]  &lt;br /&gt;
                 variable= all_units[$i]  &lt;br /&gt;
             [/unstore_unit]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
Of course, the first version is much more concise. One should mark :  &lt;br /&gt;
* Filters are hidden loops&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt; fetching all elements of the starting set.  &lt;br /&gt;
* Criteria composition is more explicit in the second version. We have here an [and] tag which is missing in the first one. It shows clearly both condition must be met. In filters, the [and] tag is most often implicit, as we already seen.&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;2) &amp;lt;/sup&amp;gt;Internally, it’s not always the case, but we’ve not to deal with internal implementations.&amp;lt;br&amp;gt;Conceptually, filters can always be seen as hidden loops.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, a question arises : where are the starting and result sets we talked about? They show nowhere. The reply is most often we don’t need to see them, because we don’t need to create result sets explicitly. We need to use them to specify actions targets or conditions. In the '''‘modify_unit’''' example, we apply the action « change side » to the result set of the filter and then need it no more.&lt;br /&gt;
The starting set is implicit too. Most of time, it’s the larger available set of objects : i.e. all created units (sometimes including the recall list) or all hexes in the map. In the '''moveto''' event, it contains only the moving unit.&lt;br /&gt;
Once again, we are not telling these sets really exist in Wesnoth engine code. But these are an accurate model of how the filters work in WML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Result sets and arrays. === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A good way to get explicitly the result set is to use the '''‘store_...’''' tags. These actions create  &lt;br /&gt;
arrays containing the result set of the filter they take as parameter. This is very useful in many ways. The common use is of course to store units and locations for some processing or later use. But one can use this to split complex filters and inspect intermediate results. The former '''‘modify_unit’''' example could be written as:  &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp1  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp2  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This trivial example shows not only how to debug complex filters (inspecting the content of ''temp1'' and ''temp2'' arrays), but how to specify a starting set with the '''‘find_in’''' key. Without it, the second '''‘store_unit’''' tag would store all units except orcs. With it, we ask to apply the filter to the content of ''temp1'' array &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; (all side 2 units). It’s like our card example where we selected the spades first and next the king(s) in the spades stack.  &lt;br /&gt;
The '''‘find-in’''' key is really precious in many cases : often it’s easier to build explicitly an array containing the objects we want to select than creating complex filters to retrieve them.  &lt;br /&gt;
For example, if we want dying units to drop weapons and other units to retrieve them, it can be very difficult to create a filter allowing to select locations where the weapons where dropped. Instead, we can build an array containing their locations (and other informations at will). Since this array have x and y members, the '''find_in''' key of a location filter can use it&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;. It would be:&lt;br /&gt;
 # in the die event &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=weapons  &lt;br /&gt;
     mode=append  &lt;br /&gt;
     [value]  &lt;br /&gt;
         x=$unit.x  &lt;br /&gt;
         y=$unit.y  &lt;br /&gt;
         … anything else, for instance the image name and item id.  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
 # drop item, etc…  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # and in a moveto event&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         [filter_location]  &lt;br /&gt;
             find_in=weapons  &lt;br /&gt;
         [/filter_location]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
&lt;br /&gt;
Let’s give another example. &lt;br /&gt;
The scenario’s map features three temples at 10,10 20,20 30,30.&lt;br /&gt;
We want to give some bonus gold to side 1 if any side 1 unit visits temple 1,2,3 exactly in that order.&lt;br /&gt;
Here is a solution using result sets arrays :  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1&lt;br /&gt;
         x,y=10,10  &lt;br /&gt;
         [not]  &lt;br /&gt;
             find_in=temple_1  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         variable=temple_1  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=$unit.id  &lt;br /&gt;
         [/filter]&lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 [/event]&lt;br /&gt;
In temple_1, we store all side 1 units visiting temple_1, but only once (that’s why the '''[not] find_in''' tag, because units can visit the temple more than once).  &lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;3) &amp;lt;/sup&amp;gt;It’s surprising because this array doesn’t contain locations, but it’s a feature, not a side effect.&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         x,y=20,20  &lt;br /&gt;
         find_in=temple_1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             find_in=temple_2  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]&lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         variable=temple_2  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=$unit.id  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 [/event]   &lt;br /&gt;
&lt;br /&gt;
This time, we store only units previously stored in temple_1 (= they already visited that temple).&lt;br /&gt;
Then the last event is obviously :  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=yes  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         x,y=30,30  &lt;br /&gt;
         find_in=temple_2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [gold]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         amount=1000  &lt;br /&gt;
     [/gold]  &lt;br /&gt;
     {CLEAR_VARIABLE temple_1,temple_2}  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ordering and writing === &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
We said earlier that criteria order is not significant. That's right from a theoretical point of view. But, for syntactic reasons and particularly because the radius key in location filters, this is not fully true in WML. Actually conditions are applied to candidate objects until one proves to be false or all conditions are checked. Then, if some condition proves to be false, remaining conditions &amp;lt;u&amp;gt;are not evaluated&amp;lt;/u&amp;gt; (so if there's some radius there, it will not be executed). In some cases, this may be important. One can assume conditions are evaluated in the order they are found except logical operators (and, or, not) which are evaluated &amp;lt;u&amp;gt;after&amp;lt;/u&amp;gt; other conditions. It’s very important to note that evaluation order of top level conditions (those not embedded in and/or/not tags) is undocumented, which means &amp;lt;u&amp;gt;your code shouldn’t rely on it&amp;lt;/u&amp;gt;. On the contrary, and/or/not tags are always executed last, in the order they are written.  &lt;br /&gt;
&lt;br /&gt;
So in this example:&lt;br /&gt;
 [filter]  &lt;br /&gt;
    has_weapon=sword  &lt;br /&gt;
    side=1  &lt;br /&gt;
    [or]  &lt;br /&gt;
        side=2  &lt;br /&gt;
    [/or]  &lt;br /&gt;
    gender=female  &lt;br /&gt;
 [/filter]  &lt;br /&gt;
will be executed using this order:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     has_weapon=sword  &lt;br /&gt;
     side=1  &lt;br /&gt;
     gender=female  &lt;br /&gt;
     [or]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/or]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
One should be aware of this for some reasons:&lt;br /&gt;
&lt;br /&gt;
'''⇒''' Clarity: your code will be easier to understand and to debug if you avoid meddling conditions, nested filters and logical blocks, and write them in the order they are evaluated.&lt;br /&gt;
&lt;br /&gt;
'''⇒''' Performance.&lt;br /&gt;
Most of time, performance is not an issue. But it can be if you have a lot of units and use '''[filter_wml]'''. More generally, it’s good programming practice to execute the &amp;lt;u&amp;gt;more restrictive&amp;lt;/u&amp;gt; test first.&lt;br /&gt;
Consider this example:&lt;br /&gt;
 [filter]&lt;br /&gt;
     race=orc&lt;br /&gt;
     x,y=16,22&lt;br /&gt;
 [/filter]&lt;br /&gt;
The first condition will be evaluated on all units. But the second one will be evaluated on all orcs. Then if we write:&lt;br /&gt;
 [filter]&lt;br /&gt;
     x,y=16,22&lt;br /&gt;
     race=orc&lt;br /&gt;
 [/filter]&lt;br /&gt;
obviously, the second condition will be evaluated once at most, and filtering will be faster. (Strictly speaking, I should have wrapped second condition in an '''and''' tag to force evaluation order).&lt;br /&gt;
Remember too that logical operators '''(and, or, not)''' are not mandatory, but are allowed. So one can use them for clarity sake or to force an evaluation order. It’s particularly important when using '''or''' tags.&lt;br /&gt;
&lt;br /&gt;
In the example above one could expect the result set contains all women of sides 1 and 2 wielding a sword. But it contains actually all side 1 women wielding a sword plus &amp;lt;u&amp;gt;all side 2 units&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Filters work actually as if top level criteria were enclosed in an implicit '''and''' tag: so we should read:&lt;br /&gt;
 [filter]&lt;br /&gt;
    [and] '''#implicit'''&lt;br /&gt;
        has_weapon=sword&lt;br /&gt;
        side=1&lt;br /&gt;
        gender=female&lt;br /&gt;
    [/and]&lt;br /&gt;
    [or]&lt;br /&gt;
        side=2&lt;br /&gt;
    [/or]&lt;br /&gt;
 [/filter]&lt;br /&gt;
and what we probably wanted is:&lt;br /&gt;
 [filter]&lt;br /&gt;
     has_weapon=sword&lt;br /&gt;
     gender=female&lt;br /&gt;
     [and]&lt;br /&gt;
         side=1&lt;br /&gt;
         [or]&lt;br /&gt;
             side=2&lt;br /&gt;
         [/or]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
Note that it could be written:&lt;br /&gt;
 [filter]&lt;br /&gt;
     [and]&lt;br /&gt;
         has_weapon=sword&lt;br /&gt;
         gender=female&lt;br /&gt;
     [/and]&lt;br /&gt;
     [and]&lt;br /&gt;
         side=1&lt;br /&gt;
         [or]&lt;br /&gt;
            side=2&lt;br /&gt;
         [/or]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This syntax is correct and you can use it if you find it clearer.&lt;br /&gt;
Remembering this implicit '''and''' tag (and writing it explicitly at will) is very important to understand or design complex filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Writing complex filters. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some guidelines one can use when writing complex filters. Suppose we want to set up some kind of disease aura harming units standing close to some villages. We shall start writing a sentence describing the feature.&lt;br /&gt;
&lt;br /&gt;
 '''We want to select units who:'''&lt;br /&gt;
     '''Are enemy to side 1'''&lt;br /&gt;
         '''stand on hexes which'''&lt;br /&gt;
             '''are near to'''&lt;br /&gt;
                 '''villages'''&lt;br /&gt;
                     '''with side 1 units standing on it'''&lt;br /&gt;
Mark we put only one condition on each line to clearly separate them. Mark we sorted them, because some apply to units to be filtered,  others to locations, and finally to other (enemy) units standing on locations. Next, we shall add logical operators and parenthesis to clearly specify what we want:&lt;br /&gt;
 '''Units, who ('''&lt;br /&gt;
     '''&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Are enemy to side 1&amp;lt;/span&amp;gt; AND''' &lt;br /&gt;
     '''stand on locations which ('''&lt;br /&gt;
         '''(	Are villages AND'''&lt;br /&gt;
             '''have unit on it who ('''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
          ''') OR'''&lt;br /&gt;
          '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
     ''')'''		&lt;br /&gt;
 ''')'''&lt;br /&gt;
Now, we are ready to start building the filter. Since we want units who… it shall be a unit filter. In the standard unit filter, there’s no condition directly allowing to state the unit is enemy to side 1. So we have to replace this with something valid in the SUF context. Using parenthesis to avoid errors, we can replace the condition with a side filter because it’s valid in unit filters.&lt;br /&gt;
 '''Units, who ('''&lt;br /&gt;
     '''&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;(belongs to a side which ('''&lt;br /&gt;
         '''is enemy to side 1) )&amp;lt;/span&amp;gt; AND''' &lt;br /&gt;
     '''stand on locations which ('''&lt;br /&gt;
         '''(	Are villages AND'''&lt;br /&gt;
             '''have unit on it who ('''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
         ''') OR'''&lt;br /&gt;
         '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
      ''')'''		&lt;br /&gt;
 ''')'''&lt;br /&gt;
Now we can write the filter. Here we do it step by step to show how the translation is rather straightforward and how our parenthesis match exactly the subtags.&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
            '''AND''' &lt;br /&gt;
     '''stand on locations which ( # we start to filter locations there'''&lt;br /&gt;
            '''(	Are villages AND'''&lt;br /&gt;
                '''have unit on it who ('''&lt;br /&gt;
                    '''Belongs to side 1'''&lt;br /&gt;
                ''')'''&lt;br /&gt;
            ''') OR'''&lt;br /&gt;
            '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
     ''')'''		&lt;br /&gt;
 [/filter]&lt;br /&gt;
&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
     [and] &lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
                 '''AND'''&lt;br /&gt;
             '''have unit on it who (# to unit filter again'''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
             radius=3 '''# radius is a special case, see below'''&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]		&lt;br /&gt;
 [/filter]&lt;br /&gt;
&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
     [and] &lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
             [and]&lt;br /&gt;
                 [filter]&lt;br /&gt;
                     side=1&lt;br /&gt;
                 [/filter]&lt;br /&gt;
             [/and]&lt;br /&gt;
             radius=3 '''# radius is a special case, see below'''&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]		&lt;br /&gt;
 [/filter]&lt;br /&gt;
Here, we are done. The filter should work as it is, but it looks rather unusual because all these '''[and]''' blocks. Actually we can delete most of them using a simple rule: '''[and]''' tags are not needed when they contain one single criterion or a single block, (except if you want to set up an evaluation order). In our example, the '''filter_location''' block is alone in its '''and''' tag, and the embedded '''filter''' as well, so we can avoid those '''and''' tags and get finally:&lt;br /&gt;
 [event]&lt;br /&gt;
     name=moveto&lt;br /&gt;
     first_time_only=no&lt;br /&gt;
     [filter]&lt;br /&gt;
         [filter_side]&lt;br /&gt;
             [enemy_of]&lt;br /&gt;
                 side=1&lt;br /&gt;
             [/enemy_of]&lt;br /&gt;
         [/filter_side]&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
             [filter]&lt;br /&gt;
                 side=1&lt;br /&gt;
             [/filter]&lt;br /&gt;
             radius=3&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/filter]&lt;br /&gt;
     [harm_unit]&lt;br /&gt;
         [filter]&lt;br /&gt;
             id=$unit.id&lt;br /&gt;
         [/filter]&lt;br /&gt;
         amount=10&lt;br /&gt;
         animate=yes&lt;br /&gt;
     [/harm_unit]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filters uses: events actions and conditions. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here, we shall deal with filter uses in WML. The language is not fully consistent, mainly to simplify its syntax, so some points can be misleading.&lt;br /&gt;
:&amp;lt;u&amp;gt;'''Using in actions'''&amp;lt;/u&amp;gt;&lt;br /&gt;
Most actions take a filter as first parameter. The main difficulty here is to know if '''[filter]''' tags must be used or not. Actually, they’re used to avoid confusing keys and criteria when they have the same name&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;. For instance, the '''[kill]''' action needs a unit filter and has these keys:&lt;br /&gt;
&lt;br /&gt;
* '''animate:''' if 'yes', displays the unit dying (fading away).&lt;br /&gt;
* '''fire_event:''' if 'yes', triggers any appropriate 'die' events (See EventWML). Note that events are only fired for killed units that have been on the map (as opposed to recall list).&lt;br /&gt;
* '''[secondary_unit]''' with a StandardUnitFilter as argument. Do not use a [filter] tag. Has an effect only if fire_event=yes. The first on-map unit matching the filter.&lt;br /&gt;
&lt;br /&gt;
As we can see, none of these keys and tags are shared with unit filter keys and tags. This means the code parser needs no '''[filter]''' tag to know which key belongs to the filter and which to the action. But in the code, there’s no obvious distinction.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;4) &amp;lt;/sup&amp;gt;Note there’s no specific top level tag for location filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [kill]&lt;br /&gt;
     animate=yes '''# this belongs to the ‘kill’'''&lt;br /&gt;
     id=BadGuy_101 '''# this belongs to the unit filter'''&lt;br /&gt;
 [/kill]&lt;br /&gt;
is the correct syntax. Note a common error is to use a '''[filter]''' tag here. Since this tag is unknown in the context, it is ignored, so the kill action is applied to the starting set, i.e. all units (including the recall lists). Same with the '''filter_side''' tag which is not needed everywhere (in '''store_sides''' particularly).&lt;br /&gt;
Adversely, '''[modify_unit]''' obviously requires a '''[filter]''' tag, because all keys and criteria have the same name:&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     side=2&lt;br /&gt;
     side=1&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
&lt;br /&gt;
This would make no sense of course because one can’t find if side 1 units must be put into side 2 or the contrary. Anyway, there is an exception: the '''[store_unit]''' tag requires a '''[filter]''' tag even if there is no '''‘variable’''' key in units description. Another special case is when using terrain action, because the key '''terrain''' is valid both in location filters and terrain action. Since there is no special tag to delimit location filters, one should write:&lt;br /&gt;
 [terrain]&lt;br /&gt;
     [and]&lt;br /&gt;
         terrain=Wo* '''# here is the filter criterion'''&lt;br /&gt;
     [/and]&lt;br /&gt;
     terrain=Rr '''# and the new terrain'''&lt;br /&gt;
 [/terrain]&lt;br /&gt;
The next example can be confusing:&lt;br /&gt;
 [kill]'''# kill all units standing on deep water'''&lt;br /&gt;
     animate=yes&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         terrain=Wo&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/kill]&lt;br /&gt;
When reading the '''‘kill’''' tag documentation, one will not find any '''‘filter_location’''' or location filter entry. Does this means it’s an undocumented feature ? No. But the '''‘filter_location’''' belongs to the implicit '''‘filter’''' tag of the '''‘kill’''' action and is documented there. It’s kind of:&lt;br /&gt;
 [kill]'''# kill all units standing on deep water'''&lt;br /&gt;
     animate=yes&lt;br /&gt;
     '''#'''[filter] '''we’re filtering units here, not locations'''&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=Wo&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     '''#'''[/filter]&lt;br /&gt;
 [/kill]&lt;br /&gt;
&lt;br /&gt;
=== Using filters in conditions. ===&lt;br /&gt;
&lt;br /&gt;
Filters can be used to create conditional expressions. They can be nested in '''[have_unit]''' or '''[have_location]''' tags or in nested filters. Here, the result set is not used directly, but its size must fall in the range defined by the '''‘count’''' key. This finally gives a Boolean result: true or false. So one can use them in '''[if] [show_if]''' conditional actions or in a '''[filter_condition]''' tag. They are widely used in nested filters too (see the special chapter on this).&lt;br /&gt;
&lt;br /&gt;
Let’s give some examples:&lt;br /&gt;
&lt;br /&gt;
 [have_unit] '''# this piece of code evaluates to true when no more enemy leaders are alive'''&lt;br /&gt;
     canrecruit=yes&lt;br /&gt;
     [not]&lt;br /&gt;
         side=1&lt;br /&gt;
     [/not]&lt;br /&gt;
     count=0&lt;br /&gt;
 [/have_unit]&lt;br /&gt;
&lt;br /&gt;
 [have_location] '''# this one is true if at least 5 side 1 units stand on a village'''&lt;br /&gt;
     terrain=*^V*&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=1&lt;br /&gt;
     [/filter]&lt;br /&gt;
     count=5-1000&lt;br /&gt;
 [/have_location]&lt;br /&gt;
Note we could also write this condition:&lt;br /&gt;
 [have_unit]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     count=5-1000&lt;br /&gt;
 [/have_unit]&lt;br /&gt;
Note we could use a '''[store_unit]''' instead, testing the ''length'' property of the array:&lt;br /&gt;
 [store_unit]&lt;br /&gt;
     variable=temp&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=1&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/filter]&lt;br /&gt;
 [/store_unit]&lt;br /&gt;
 #[if] or [filter_condition]&lt;br /&gt;
     [variable]&lt;br /&gt;
         name=temp.length&lt;br /&gt;
         greater_than=4&lt;br /&gt;
     [/variable]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using filters in events. ===&lt;br /&gt;
In events, filters are always used in a conditional way, because they state if the event should fire or not. In any event, we can set '''[filter_condition]''' using '''have_unit''' or '''have_location''' (and a more ordinary variable condition, but this is off topic).&lt;br /&gt;
Some events use filters in a special way: '''moveto''' and '''attack''' events particularly. In them, the filtering apply not on all units as usual, but only on units involved in the event action: one unit only is moving at a time, two units only are involved in a fight. Then the event fires if and only if the involved unit(s) match the filter.&lt;br /&gt;
Note that one can use '''[filter]''' and '''[filter_condition]''' in the same moveto or attack event. Both conditions are then ANDed.&lt;br /&gt;
&lt;br /&gt;
'''Filtering units'''&lt;br /&gt;
&lt;br /&gt;
Criteria allowed to filter units (in standard unit filters) are listed below. First, the keys dealing with the unit properties (as usual, comma separated lists means conditions are ORed):&lt;br /&gt;
:'''id:''' ''can be a comma-separated list, every unit with one of these ids matches''&lt;br /&gt;
:'''type:''' ''can be a list of types''&lt;br /&gt;
:'''race:''' ''(Version 1.11 and later only: this can be a comma-separated list)''&lt;br /&gt;
:'''ability:''' ''unit has an ability with the given id (not name !)''&lt;br /&gt;
:'''side:''' ''the unit is on the given side (can be a list). One can use a [filter_side] instead''&lt;br /&gt;
:'''has_weapon:''' ''the unit has a weapon with the given name''&lt;br /&gt;
:'''canrecruit:''' ''yes if the unit can recruit (i.e. is a leader)''&lt;br /&gt;
:'''gender:''' ''female if the unit is female rather than the default of male''&lt;br /&gt;
:'''role:''' ''the unit has been assigned the given role''&lt;br /&gt;
:'''level:''' ''the level of the unit''&lt;br /&gt;
:'''defense:''' ''current defense of the unit on current tile''&lt;br /&gt;
:'''movement_cost:''' ''current movement cost of the unit on current tile''&lt;br /&gt;
:'''x,y:''' ''the position of the unit. (Ranges ? probably because it works in moveto events)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not all unit properties are listed here, but they can be used in a '''[filter_wml]''' sub-tag like this:&lt;br /&gt;
 [filter_wml]&lt;br /&gt;
     max_moves=7&lt;br /&gt;
 [/filter_wml]&lt;br /&gt;
 &lt;br /&gt;
 [filter_wml]&lt;br /&gt;
     [status]&lt;br /&gt;
         poisoned=yes&lt;br /&gt;
     [/status]&lt;br /&gt;
 [/filter_wml]&lt;br /&gt;
Some of them accept comma separated lists or ranges. Some not, but it also possible to use them more than once with '''[and]''' and '''[or]''' subtags. For instance :&lt;br /&gt;
 [and]&lt;br /&gt;
     race= elf&lt;br /&gt;
     [or]&lt;br /&gt;
         race= merman&lt;br /&gt;
     [/or]&lt;br /&gt;
 [/and]&lt;br /&gt;
Other sub tags are dealing with unit relationships:&lt;br /&gt;
:'''⇒''' The hex on which they stand: '''[filter_location]''' which contains a standard location filter.&lt;br /&gt;
:'''⇒''' The units adjacent to it: '''[filter_adjacent]''' which contains another standard unit filter&lt;br /&gt;
:'''⇒''' Their visible status relating to a particular side: '''[filter_vision]'''&lt;br /&gt;
These are nested filters ; or in other words, filters used to create conditions and not result sets (see earlier and later).&lt;br /&gt;
&lt;br /&gt;
Custom functions returning a boolean:&lt;br /&gt;
:'''formula:''' FormulaAI like formula.&lt;br /&gt;
:'''lua_function:''' lua function&lt;br /&gt;
&lt;br /&gt;
SUFs accept a '''find_in''' key too. As we saw earlier, this allows to restrict the starting set to the content of an array.&lt;br /&gt;
&lt;br /&gt;
=== this_unit ===&lt;br /&gt;
&lt;br /&gt;
This variable is a special variable defined only inside SUFs. Suppose we want to catch in a filter units at full health. We can use the '''hitpoints''', but the problem is we know not which value to use, because every unit type has its own:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_wml]&lt;br /&gt;
         hitpoints=?&lt;br /&gt;
     [/filter_wml]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This is why we could have the use of some way to specify the unit being fetched during the filtering.&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_wml]&lt;br /&gt;
         hitpoints=$this_unit.max_hitpoints&lt;br /&gt;
     [/filter_wml]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This does the trick. The condition value will be updated according to unit properties before executing the check.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filtering locations ===&lt;br /&gt;
&lt;br /&gt;
'''find_in''': a location array specifying the starting set.&lt;br /&gt;
&lt;br /&gt;
'''time_of_day''': one of lawful, chaotic, neutral or liminal.&lt;br /&gt;
'''time_of_day_id''': one or more from: dawn, morning, afternoon, dusk, first_watch, second_watch, indoors, underground and deep_underground.&lt;br /&gt;
    &lt;br /&gt;
'''terrain''': comma separated list of terrains.&lt;br /&gt;
'''x,y''': the same as in the unit filter; supports any range.&lt;br /&gt;
'''owner_side''': If a valid side number, restricts stored locations to villages belonging to this side. If 0, restricts to all unowned locations (the whole map except villages which belong to some valid side). A hex is considered a village if and only if its [ terrain_type ] gives_income= parameter was set to yes (which means a side can own that hex).&lt;br /&gt;
&lt;br /&gt;
'''[filter_adjacent_location]''': a standard location filter; if present the correct number of adjacent locations must match this filter&lt;br /&gt;
&lt;br /&gt;
'''[filter]''' with a Standard Unit Filter as argument; if present a unit must also be there&lt;br /&gt;
&lt;br /&gt;
'''radius''': &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;&amp;lt;u&amp;gt;this is not strictly speaking a criterion.&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt; It adds to the result set all hexes adjacent to a matching hex and is always applied last, when all criteria are checked. Remember the filtering process is a hidden loop where all candidates are fetched one by one. If a candidate match the filter, radius adds all adjacent hexes (matching the filter or not !). If it don't, it does nothing.&lt;br /&gt;
This is why this example doesn't work:&lt;br /&gt;
 [filter] '''&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;# this example doesn’t work !&amp;lt;/span&amp;gt;'''&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
         [not]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
The coder here expected the radius action to be performed just after selecting the 43,32 hex, and the '''[not]''' criterion applied to this hex and it's adjacent radius 5 set. But '''radius''' is always applied last, &amp;lt;u&amp;gt;even if written before some other conditions&amp;lt;/u&amp;gt;. So when using '''radius''', a good rule is to create the filter without it at first and to see if it can catch something. Here, it would give:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         [not]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
which is clearly non sense because the two conditions are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
The solution is to pack the conditions in two different filters:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     [and]&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             [not]&lt;br /&gt;
                 x,y=43,32&lt;br /&gt;
             [/not]&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
or,&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         [and]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
             radius=5&lt;br /&gt;
         [/and]&lt;br /&gt;
         [not]&lt;br /&gt;
              x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
or, since the x,y keys are defined in '''[filter]''' too, it can be:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     [not]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
     [/not]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This is why '''[filter_radius]''' is useful. As we said, radius adds hexes without checking any condition (except proximity of course). If we want to put a condition on hexes added with radius (and them only), we would use it as in next example. Here we want to select forested hexes near villages:&lt;br /&gt;
 [filter_location]&lt;br /&gt;
     terrain=*^V*&lt;br /&gt;
     radius=3&lt;br /&gt;
     [filter_radius]&lt;br /&gt;
         terrain=*^F*&lt;br /&gt;
     [/filter_radius]&lt;br /&gt;
 [/filter_location]&lt;br /&gt;
But, this will not work exactly as in our previous example because radius extends outwards from matching locations one step at a time. Only the locations matching the '''filter_radius''' will be selected AND used to compute the next step. If there’s no forest hex near the village, the previous filter will return nothing, even if there are some forest hexes farther in the range.&lt;br /&gt;
&lt;br /&gt;
Note this filter selects the village too ! If we want not, this should be:&lt;br /&gt;
 [filter_location]&lt;br /&gt;
     [and]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
         radius=3&lt;br /&gt;
         [filter_radius]&lt;br /&gt;
             terrain=*^F*&lt;br /&gt;
         [/filter_radius]&lt;br /&gt;
     [/and]&lt;br /&gt;
     [not]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
     [/not]&lt;br /&gt;
 [/filter_location]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nested filters ===&lt;br /&gt;
&lt;br /&gt;
Now, we are ready to study how to create nested filters, in other words, filters containing  sub filters. In location or unit filters, the documentation says one can insert filters of various kind involving other objects. In this way, we can select unit adjacent to other units or standing on some terrains. Actually, they’re not exactly filters: they are conditions or criteria built on filters. In other words, they don’t produce a result set but are, like other criteria, expressions evaluating to true or false. That’s why many of them have additional keys, like '''‘count’''' (see the filter use in conditions).&lt;br /&gt;
&lt;br /&gt;
We shall discuss this on examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filter_adjacent. ===&lt;br /&gt;
&lt;br /&gt;
In a unit filter, this allow to create criteria stating which units must be adjacent to the tested unit. In this example, we shall implement an ability named ‘escape’. Units having this ability can teleport elsewhere when surrounded by more than 3 enemies. We shall set a '''moveto''' event to watch the ‘surround’ event.&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51422</id>
		<title>FilterWML/Examples - How to use Filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51422"/>
		<updated>2013-06-17T11:45:52Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Using filters in events. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Filtering ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Filters are a very important part of WML language, and a fairly complex too for various  &lt;br /&gt;
reasons. Here, we shall try to explain how to use them with more details than in the reference  &lt;br /&gt;
wiki pages. But the goal is not to replace these pages, and we assume you have at least some  &lt;br /&gt;
knowledge of the various WML filters, namely unit and location filters. The examples given  &lt;br /&gt;
below aren’t always the best way to do things: the goal here is understanding filtering, not to  &lt;br /&gt;
give a complete WML course.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basics: How filters work. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Filtering is narrowing a set of objects to a result set using criteria. Let’s give an example :  &lt;br /&gt;
given a set of cards, if one is asked to select the spades, (s)he will probably check the cards  &lt;br /&gt;
one by one and create two stacks : one containing only the spades, and another containing the  &lt;br /&gt;
unselected cards. This is a very simple filter, where the criterion is « this card has spades  &lt;br /&gt;
colour » and the result set is a card stack. &lt;br /&gt;
The spades cards are said ‘matching’ the filter.  &lt;br /&gt;
If next we’re asked to find the king of spades, most probably, we will not restart from the  &lt;br /&gt;
beginning but only scan the spades stack to find the right card. This is an example of two  &lt;br /&gt;
criteria filter. In WML we would write something like :  &lt;br /&gt;
 [filter]&lt;br /&gt;
     colour=spades&lt;br /&gt;
     value=king&lt;br /&gt;
 [/filter]&lt;br /&gt;
to describe the operation. Criteria are expressions evaluating to true or false. Is this card colour  &lt;br /&gt;
spades ? That’s how we must read the sentence: ‘colour=spades’.  &lt;br /&gt;
Now, stating both criteria must be met is not the only way to combine them:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     colour=spades,diamonds  &lt;br /&gt;
     value=king  &lt;br /&gt;
 [/filter]&lt;br /&gt;
the first expression will be true if a card colour is ‘spades OR diamonds’. It would make no  &lt;br /&gt;
sense to state they should be ‘spades AND diamonds’, of course.  &lt;br /&gt;
In many languages, you must specify how criteria combine using the special keywords ‘OR’  &lt;br /&gt;
and ‘AND’. In WML, you can do so, but most often, you’re not requested to do so. Writing  &lt;br /&gt;
explicitly the logical operators would give something like that:&lt;br /&gt;
 [filter]  &lt;br /&gt;
     [and]  &lt;br /&gt;
         colour=spades  &lt;br /&gt;
         [or]  &lt;br /&gt;
             colour=diamonds  &lt;br /&gt;
         [/or]  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 &lt;br /&gt;
     [and]  &lt;br /&gt;
         value=king  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
or in natural speech: “is card (colour=spades OR colour=diamonds) AND value=king ?” Note  &lt;br /&gt;
here the use of parenthesis. As in algebra, they mean their content must be evaluated prior to  &lt;br /&gt;
apply the last criterion.  &lt;br /&gt;
'''[and]''' and  '''[or]''' subtags are WML equivalents of parenthesis. They are not mandatory (like in some other languages), and this is a cool feature, but can be misleading in complex filters.  &lt;br /&gt;
The rule is:  &lt;br /&gt;
* listed criteria are ''ANDed'', in other words, they must all be true for the object to match the filter.  &lt;br /&gt;
* comma separated lists in a criterion are equivalent to ''ORed'' criteria. &amp;lt;br&amp;gt;In other words, one only is enough for the object to match the filter.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
'''There are some things important to note:'''&lt;br /&gt;
&lt;br /&gt;
* A complex filter can always be split into simpler filters applied in chain, each filter taking as starting set the result set of the former one. In our example, we applied the filter « value=king » to the result set of filter « color=spades ». This is important when building or debugging filters, because complex ones can easily be reduced to a chain of simpler ones.&lt;br /&gt;
&lt;br /&gt;
* Criteria order is not important from a logical point of view. We could have searched the kings first, obtaining the four kings in our result set, and the card of color spade next. The final result is the same. But in WML, for some reasons we shall study later, order can be important.&lt;br /&gt;
&lt;br /&gt;
* Result sets can contain any number of objects. One can’t assume the result set of our filter will contain a single card ‘THE king of spades’. A human being would probably stop the search when finding a king of spades, but filters don’t. If our starting card packet is not a complete set (some cards were lost, a cheater introduced some more, or anything else), you’ll find one, none or many kings of spades. It’s a common error in WML to assume filters will select a single object.&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; &lt;br /&gt;
* Any unit or location will match an empty filter like this one:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
        [filter]  &lt;br /&gt;
        [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
 [/event]&lt;br /&gt;
This event will be triggered on every move of every unit on the map.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; One can be sure only when filtering with ID’s because they are unique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Here now are two versions of the same action, using filters and not.'''  &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]  &lt;br /&gt;
This moves to side 1 all side 2 units except orcs. Please note how filter syntax is after all very close to natural speech. This is why we shall see a good way to design complex filters is writing an accurate sentence describing them first.  &lt;br /&gt;
Using no filter (and assuming ‘all_units’ is an array containing all created units in a scenario) we should write :  &lt;br /&gt;
 {FOREACH all_units i}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name= all_units[$i].side  &lt;br /&gt;
             equals=2  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [and]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name= all_units[$i].race  &lt;br /&gt;
                 not_equals=orc  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/and]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name= all_units[$i].side  &lt;br /&gt;
                 value=1  &lt;br /&gt;
             [/set_variable]  &lt;br /&gt;
             [unstore_unit]  &lt;br /&gt;
                 variable= all_units[$i]  &lt;br /&gt;
             [/unstore_unit]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
Of course, the first version is much more concise. One should mark :  &lt;br /&gt;
* Filters are hidden loops&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt; fetching all elements of the starting set.  &lt;br /&gt;
* Criteria composition is more explicit in the second version. We have here an [and] tag which is missing in the first one. It shows clearly both condition must be met. In filters, the [and] tag is most often implicit, as we already seen.&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;2) &amp;lt;/sup&amp;gt;Internally, it’s not always the case, but we’ve not to deal with internal implementations.&amp;lt;br&amp;gt;Conceptually, filters can always be seen as hidden loops.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, a question arises : where are the starting and result sets we talked about? They show nowhere. The reply is most often we don’t need to see them, because we don’t need to create result sets explicitly. We need to use them to specify actions targets or conditions. In the '''‘modify_unit’''' example, we apply the action « change side » to the result set of the filter and then need it no more.&lt;br /&gt;
The starting set is implicit too. Most of time, it’s the larger available set of objects : i.e. all created units (sometimes including the recall list) or all hexes in the map. In the '''moveto''' event, it contains only the moving unit.&lt;br /&gt;
Once again, we are not telling these sets really exist in Wesnoth engine code. But these are an accurate model of how the filters work in WML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Result sets and arrays. === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A good way to get explicitly the result set is to use the '''‘store_...’''' tags. These actions create  &lt;br /&gt;
arrays containing the result set of the filter they take as parameter. This is very useful in many ways. The common use is of course to store units and locations for some processing or later use. But one can use this to split complex filters and inspect intermediate results. The former '''‘modify_unit’''' example could be written as:  &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp1  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp2  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This trivial example shows not only how to debug complex filters (inspecting the content of ''temp1'' and ''temp2'' arrays), but how to specify a starting set with the '''‘find_in’''' key. Without it, the second '''‘store_unit’''' tag would store all units except orcs. With it, we ask to apply the filter to the content of ''temp1'' array &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; (all side 2 units). It’s like our card example where we selected the spades first and next the king(s) in the spades stack.  &lt;br /&gt;
The '''‘find-in’''' key is really precious in many cases : often it’s easier to build explicitly an array containing the objects we want to select than creating complex filters to retrieve them.  &lt;br /&gt;
For example, if we want dying units to drop weapons and other units to retrieve them, it can be very difficult to create a filter allowing to select locations where the weapons where dropped. Instead, we can build an array containing their locations (and other informations at will). Since this array have x and y members, the '''find_in''' key of a location filter can use it&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;. It would be:&lt;br /&gt;
 # in the die event &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=weapons  &lt;br /&gt;
     mode=append  &lt;br /&gt;
     [value]  &lt;br /&gt;
         x=$unit.x  &lt;br /&gt;
         y=$unit.y  &lt;br /&gt;
         … anything else, for instance the image name and item id.  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
 # drop item, etc…  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # and in a moveto event&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         [filter_location]  &lt;br /&gt;
             find_in=weapons  &lt;br /&gt;
         [/filter_location]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
&lt;br /&gt;
Let’s give another example. &lt;br /&gt;
The scenario’s map features three temples at 10,10 20,20 30,30.&lt;br /&gt;
We want to give some bonus gold to side 1 if any side 1 unit visits temple 1,2,3 exactly in that order.&lt;br /&gt;
Here is a solution using result sets arrays :  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1&lt;br /&gt;
         x,y=10,10  &lt;br /&gt;
         [not]  &lt;br /&gt;
             find_in=temple_1  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         variable=temple_1  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=$unit.id  &lt;br /&gt;
         [/filter]&lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 [/event]&lt;br /&gt;
In temple_1, we store all side 1 units visiting temple_1, but only once (that’s why the '''[not] find_in''' tag, because units can visit the temple more than once).  &lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;3) &amp;lt;/sup&amp;gt;It’s surprising because this array doesn’t contain locations, but it’s a feature, not a side effect.&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         x,y=20,20  &lt;br /&gt;
         find_in=temple_1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             find_in=temple_2  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]&lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         variable=temple_2  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=$unit.id  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 [/event]   &lt;br /&gt;
&lt;br /&gt;
This time, we store only units previously stored in temple_1 (= they already visited that temple).&lt;br /&gt;
Then the last event is obviously :  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=yes  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         x,y=30,30  &lt;br /&gt;
         find_in=temple_2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [gold]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         amount=1000  &lt;br /&gt;
     [/gold]  &lt;br /&gt;
     {CLEAR_VARIABLE temple_1,temple_2}  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ordering and writing === &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
We said earlier that criteria order is not significant. That's right from a theoretical point of view. But, for syntactic reasons and particularly because the radius key in location filters, this is not fully true in WML. Actually conditions are applied to candidate objects until one proves to be false or all conditions are checked. Then, if some condition proves to be false, remaining conditions &amp;lt;u&amp;gt;are not evaluated&amp;lt;/u&amp;gt; (so if there's some radius there, it will not be executed). In some cases, this may be important. One can assume conditions are evaluated in the order they are found except logical operators (and, or, not) which are evaluated &amp;lt;u&amp;gt;after&amp;lt;/u&amp;gt; other conditions. It’s very important to note that evaluation order of top level conditions (those not embedded in and/or/not tags) is undocumented, which means &amp;lt;u&amp;gt;your code shouldn’t rely on it&amp;lt;/u&amp;gt;. On the contrary, and/or/not tags are always executed last, in the order they are written.  &lt;br /&gt;
&lt;br /&gt;
So in this example:&lt;br /&gt;
 [filter]  &lt;br /&gt;
    has_weapon=sword  &lt;br /&gt;
    side=1  &lt;br /&gt;
    [or]  &lt;br /&gt;
        side=2  &lt;br /&gt;
    [/or]  &lt;br /&gt;
    gender=female  &lt;br /&gt;
 [/filter]  &lt;br /&gt;
will be executed using this order:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     has_weapon=sword  &lt;br /&gt;
     side=1  &lt;br /&gt;
     gender=female  &lt;br /&gt;
     [or]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/or]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
One should be aware of this for some reasons:&lt;br /&gt;
&lt;br /&gt;
'''⇒''' Clarity: your code will be easier to understand and to debug if you avoid meddling conditions, nested filters and logical blocks, and write them in the order they are evaluated.&lt;br /&gt;
&lt;br /&gt;
'''⇒''' Performance.&lt;br /&gt;
Most of time, performance is not an issue. But it can be if you have a lot of units and use '''[filter_wml]'''. More generally, it’s good programming practice to execute the &amp;lt;u&amp;gt;more restrictive&amp;lt;/u&amp;gt; test first.&lt;br /&gt;
Consider this example:&lt;br /&gt;
 [filter]&lt;br /&gt;
     race=orc&lt;br /&gt;
     x,y=16,22&lt;br /&gt;
 [/filter]&lt;br /&gt;
The first condition will be evaluated on all units. But the second one will be evaluated on all orcs. Then if we write:&lt;br /&gt;
 [filter]&lt;br /&gt;
     x,y=16,22&lt;br /&gt;
     race=orc&lt;br /&gt;
 [/filter]&lt;br /&gt;
obviously, the second condition will be evaluated once at most, and filtering will be faster. (Strictly speaking, I should have wrapped second condition in an '''and''' tag to force evaluation order).&lt;br /&gt;
Remember too that logical operators '''(and, or, not)''' are not mandatory, but are allowed. So one can use them for clarity sake or to force an evaluation order. It’s particularly important when using '''or''' tags.&lt;br /&gt;
&lt;br /&gt;
In the example above one could expect the result set contains all women of sides 1 and 2 wielding a sword. But it contains actually all side 1 women wielding a sword plus &amp;lt;u&amp;gt;all side 2 units&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Filters work actually as if top level criteria were enclosed in an implicit '''and''' tag: so we should read:&lt;br /&gt;
 [filter]&lt;br /&gt;
    [and] '''#implicit'''&lt;br /&gt;
        has_weapon=sword&lt;br /&gt;
        side=1&lt;br /&gt;
        gender=female&lt;br /&gt;
    [/and]&lt;br /&gt;
    [or]&lt;br /&gt;
        side=2&lt;br /&gt;
    [/or]&lt;br /&gt;
 [/filter]&lt;br /&gt;
and what we probably wanted is:&lt;br /&gt;
 [filter]&lt;br /&gt;
     has_weapon=sword&lt;br /&gt;
     gender=female&lt;br /&gt;
     [and]&lt;br /&gt;
         side=1&lt;br /&gt;
         [or]&lt;br /&gt;
             side=2&lt;br /&gt;
         [/or]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
Note that it could be written:&lt;br /&gt;
 [filter]&lt;br /&gt;
     [and]&lt;br /&gt;
         has_weapon=sword&lt;br /&gt;
         gender=female&lt;br /&gt;
     [/and]&lt;br /&gt;
     [and]&lt;br /&gt;
         side=1&lt;br /&gt;
         [or]&lt;br /&gt;
            side=2&lt;br /&gt;
         [/or]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This syntax is correct and you can use it if you find it clearer.&lt;br /&gt;
Remembering this implicit '''and''' tag (and writing it explicitly at will) is very important to understand or design complex filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Writing complex filters. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some guidelines one can use when writing complex filters. Suppose we want to set up some kind of disease aura harming units standing close to some villages. We shall start writing a sentence describing the feature.&lt;br /&gt;
&lt;br /&gt;
 '''We want to select units who:'''&lt;br /&gt;
     '''Are enemy to side 1'''&lt;br /&gt;
         '''stand on hexes which'''&lt;br /&gt;
             '''are near to'''&lt;br /&gt;
                 '''villages'''&lt;br /&gt;
                     '''with side 1 units standing on it'''&lt;br /&gt;
Mark we put only one condition on each line to clearly separate them. Mark we sorted them, because some apply to units to be filtered,  others to locations, and finally to other (enemy) units standing on locations. Next, we shall add logical operators and parenthesis to clearly specify what we want:&lt;br /&gt;
 '''Units, who ('''&lt;br /&gt;
     '''&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Are enemy to side 1&amp;lt;/span&amp;gt; AND''' &lt;br /&gt;
     '''stand on locations which ('''&lt;br /&gt;
         '''(	Are villages AND'''&lt;br /&gt;
             '''have unit on it who ('''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
          ''') OR'''&lt;br /&gt;
          '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
     ''')'''		&lt;br /&gt;
 ''')'''&lt;br /&gt;
Now, we are ready to start building the filter. Since we want units who… it shall be a unit filter. In the standard unit filter, there’s no condition directly allowing to state the unit is enemy to side 1. So we have to replace this with something valid in the SUF context. Using parenthesis to avoid errors, we can replace the condition with a side filter because it’s valid in unit filters.&lt;br /&gt;
 '''Units, who ('''&lt;br /&gt;
     '''&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;(belongs to a side which ('''&lt;br /&gt;
         '''is enemy to side 1) )&amp;lt;/span&amp;gt; AND''' &lt;br /&gt;
     '''stand on locations which ('''&lt;br /&gt;
         '''(	Are villages AND'''&lt;br /&gt;
             '''have unit on it who ('''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
         ''') OR'''&lt;br /&gt;
         '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
      ''')'''		&lt;br /&gt;
 ''')'''&lt;br /&gt;
Now we can write the filter. Here we do it step by step to show how the translation is rather straightforward and how our parenthesis match exactly the subtags.&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
            '''AND''' &lt;br /&gt;
     '''stand on locations which ( # we start to filter locations there'''&lt;br /&gt;
            '''(	Are villages AND'''&lt;br /&gt;
                '''have unit on it who ('''&lt;br /&gt;
                    '''Belongs to side 1'''&lt;br /&gt;
                ''')'''&lt;br /&gt;
            ''') OR'''&lt;br /&gt;
            '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
     ''')'''		&lt;br /&gt;
 [/filter]&lt;br /&gt;
&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
     [and] &lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
                 '''AND'''&lt;br /&gt;
             '''have unit on it who (# to unit filter again'''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
             radius=3 '''# radius is a special case, see below'''&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]		&lt;br /&gt;
 [/filter]&lt;br /&gt;
&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
     [and] &lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
             [and]&lt;br /&gt;
                 [filter]&lt;br /&gt;
                     side=1&lt;br /&gt;
                 [/filter]&lt;br /&gt;
             [/and]&lt;br /&gt;
             radius=3 '''# radius is a special case, see below'''&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]		&lt;br /&gt;
 [/filter]&lt;br /&gt;
Here, we are done. The filter should work as it is, but it looks rather unusual because all these '''[and]''' blocks. Actually we can delete most of them using a simple rule: '''[and]''' tags are not needed when they contain one single criterion or a single block, (except if you want to set up an evaluation order). In our example, the '''filter_location''' block is alone in its '''and''' tag, and the embedded '''filter''' as well, so we can avoid those '''and''' tags and get finally:&lt;br /&gt;
 [event]&lt;br /&gt;
     name=moveto&lt;br /&gt;
     first_time_only=no&lt;br /&gt;
     [filter]&lt;br /&gt;
         [filter_side]&lt;br /&gt;
             [enemy_of]&lt;br /&gt;
                 side=1&lt;br /&gt;
             [/enemy_of]&lt;br /&gt;
         [/filter_side]&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
             [filter]&lt;br /&gt;
                 side=1&lt;br /&gt;
             [/filter]&lt;br /&gt;
             radius=3&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/filter]&lt;br /&gt;
     [harm_unit]&lt;br /&gt;
         [filter]&lt;br /&gt;
             id=$unit.id&lt;br /&gt;
         [/filter]&lt;br /&gt;
         amount=10&lt;br /&gt;
         animate=yes&lt;br /&gt;
     [/harm_unit]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filters uses: events actions and conditions. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here, we shall deal with filter uses in WML. The language is not fully consistent, mainly to simplify its syntax, so some points can be misleading.&lt;br /&gt;
:&amp;lt;u&amp;gt;'''Using in actions'''&amp;lt;/u&amp;gt;&lt;br /&gt;
Most actions take a filter as first parameter. The main difficulty here is to know if '''[filter]''' tags must be used or not. Actually, they’re used to avoid confusing keys and criteria when they have the same name&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;. For instance, the '''[kill]''' action needs a unit filter and has these keys:&lt;br /&gt;
&lt;br /&gt;
* '''animate:''' if 'yes', displays the unit dying (fading away).&lt;br /&gt;
* '''fire_event:''' if 'yes', triggers any appropriate 'die' events (See EventWML). Note that events are only fired for killed units that have been on the map (as opposed to recall list).&lt;br /&gt;
* '''[secondary_unit]''' with a StandardUnitFilter as argument. Do not use a [filter] tag. Has an effect only if fire_event=yes. The first on-map unit matching the filter.&lt;br /&gt;
&lt;br /&gt;
As we can see, none of these keys and tags are shared with unit filter keys and tags. This means the code parser needs no '''[filter]''' tag to know which key belongs to the filter and which to the action. But in the code, there’s no obvious distinction.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;4) &amp;lt;/sup&amp;gt;Note there’s no specific top level tag for location filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [kill]&lt;br /&gt;
     animate=yes '''# this belongs to the ‘kill’'''&lt;br /&gt;
     id=BadGuy_101 '''# this belongs to the unit filter'''&lt;br /&gt;
 [/kill]&lt;br /&gt;
is the correct syntax. Note a common error is to use a '''[filter]''' tag here. Since this tag is unknown in the context, it is ignored, so the kill action is applied to the starting set, i.e. all units (including the recall lists). Same with the '''filter_side''' tag which is not needed everywhere (in '''store_sides''' particularly).&lt;br /&gt;
Adversely, '''[modify_unit]''' obviously requires a '''[filter]''' tag, because all keys and criteria have the same name:&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     side=2&lt;br /&gt;
     side=1&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
&lt;br /&gt;
This would make no sense of course because one can’t find if side 1 units must be put into side 2 or the contrary. Anyway, there is an exception: the '''[store_unit]''' tag requires a '''[filter]''' tag even if there is no '''‘variable’''' key in units description. Another special case is when using terrain action, because the key '''terrain''' is valid both in location filters and terrain action. Since there is no special tag to delimit location filters, one should write:&lt;br /&gt;
 [terrain]&lt;br /&gt;
     [and]&lt;br /&gt;
         terrain=Wo* '''# here is the filter criterion'''&lt;br /&gt;
     [/and]&lt;br /&gt;
     terrain=Rr '''# and the new terrain'''&lt;br /&gt;
 [/terrain]&lt;br /&gt;
The next example can be confusing:&lt;br /&gt;
 [kill]'''# kill all units standing on deep water'''&lt;br /&gt;
     animate=yes&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         terrain=Wo&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/kill]&lt;br /&gt;
When reading the '''‘kill’''' tag documentation, one will not find any '''‘filter_location’''' or location filter entry. Does this means it’s an undocumented feature ? No. But the '''‘filter_location’''' belongs to the implicit '''‘filter’''' tag of the '''‘kill’''' action and is documented there. It’s kind of:&lt;br /&gt;
 [kill]'''# kill all units standing on deep water'''&lt;br /&gt;
     animate=yes&lt;br /&gt;
     '''#'''[filter] '''we’re filtering units here, not locations'''&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=Wo&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     '''#'''[/filter]&lt;br /&gt;
 [/kill]&lt;br /&gt;
&lt;br /&gt;
=== Using filters in conditions. ===&lt;br /&gt;
&lt;br /&gt;
Filters can be used to create conditional expressions. They can be nested in '''[have_unit]''' or '''[have_location]''' tags or in nested filters. Here, the result set is not used directly, but its size must fall in the range defined by the '''‘count’''' key. This finally gives a Boolean result: true or false. So one can use them in '''[if] [show_if]''' conditional actions or in a '''[filter_condition]''' tag. They are widely used in nested filters too (see the special chapter on this).&lt;br /&gt;
&lt;br /&gt;
Let’s give some examples:&lt;br /&gt;
&lt;br /&gt;
 [have_unit] '''# this piece of code evaluates to true when no more enemy leaders are alive'''&lt;br /&gt;
     canrecruit=yes&lt;br /&gt;
     [not]&lt;br /&gt;
         side=1&lt;br /&gt;
     [/not]&lt;br /&gt;
     count=0&lt;br /&gt;
 [/have_unit]&lt;br /&gt;
&lt;br /&gt;
 [have_location] '''# this one is true if at least 5 side 1 units stand on a village'''&lt;br /&gt;
     terrain=*^V*&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=1&lt;br /&gt;
     [/filter]&lt;br /&gt;
     count=5-1000&lt;br /&gt;
 [/have_location]&lt;br /&gt;
Note we could also write this condition:&lt;br /&gt;
 [have_unit]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     count=5-1000&lt;br /&gt;
 [/have_unit]&lt;br /&gt;
Note we could use a '''[store_unit]''' instead, testing the ''length'' property of the array:&lt;br /&gt;
 [store_unit]&lt;br /&gt;
     variable=temp&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=1&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/filter]&lt;br /&gt;
 [/store_unit]&lt;br /&gt;
 #[if] or [filter_condition]&lt;br /&gt;
     [variable]&lt;br /&gt;
         name=temp.length&lt;br /&gt;
         greater_than=4&lt;br /&gt;
     [/variable]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using filters in events. ===&lt;br /&gt;
In events, filters are always used in a conditional way, because they state if the event should fire or not. In any event, we can set '''[filter_condition]''' using '''have_unit''' or '''have_location''' (and a more ordinary variable condition, but this is off topic).&lt;br /&gt;
Some events use filters in a special way: '''moveto''' and '''attack''' events particularly. In them, the filtering apply not on all units as usual, but only on units involved in the event action: one unit only is moving at a time, two units only are involved in a fight. Then the event fires if and only if the involved unit(s) match the filter.&lt;br /&gt;
Note that one can use '''[filter]''' and '''[filter_condition]''' in the same moveto or attack event. Both conditions are then ANDed.&lt;br /&gt;
&lt;br /&gt;
'''Filtering units'''&lt;br /&gt;
&lt;br /&gt;
Criteria allowed to filter units (in standard unit filters) are listed below. First, the keys dealing with the unit properties (as usual, comma separated lists means conditions are ORed):&lt;br /&gt;
:'''id:''' ''can be a comma-separated list, every unit with one of these ids matches''&lt;br /&gt;
:'''type:''' ''can be a list of types''&lt;br /&gt;
:'''race:''' ''(Version 1.11 and later only: this can be a comma-separated list)''&lt;br /&gt;
:'''ability:''' ''unit has an ability with the given id (not name !)''&lt;br /&gt;
:'''side:''' ''the unit is on the given side (can be a list). One can use a [filter_side] instead''&lt;br /&gt;
:'''has_weapon:''' ''the unit has a weapon with the given name''&lt;br /&gt;
:'''canrecruit:''' ''yes if the unit can recruit (i.e. is a leader)''&lt;br /&gt;
:'''gender:''' ''female if the unit is female rather than the default of male''&lt;br /&gt;
:'''role:''' ''the unit has been assigned the given role''&lt;br /&gt;
:'''level:''' ''the level of the unit''&lt;br /&gt;
:'''defense:''' ''current defense of the unit on current tile''&lt;br /&gt;
:'''movement_cost:''' ''current movement cost of the unit on current tile''&lt;br /&gt;
:'''x,y:''' ''the position of the unit. (Ranges ? probably because it works in moveto events)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not all unit properties are listed here, but they can be used in a '''[filter_wml]''' sub-tag like this:&lt;br /&gt;
 [filter_wml]&lt;br /&gt;
     max_moves=7&lt;br /&gt;
 [/filter_wml]&lt;br /&gt;
 &lt;br /&gt;
 [filter_wml]&lt;br /&gt;
     [status]&lt;br /&gt;
         poisoned=yes&lt;br /&gt;
     [/status]&lt;br /&gt;
 [/filter_wml]&lt;br /&gt;
Some of them accept comma separated lists or ranges. Some not, but it also possible to use them more than once with '''[and]''' and '''[or]''' subtags. For instance :&lt;br /&gt;
 [and]&lt;br /&gt;
     race= elf&lt;br /&gt;
     [or]&lt;br /&gt;
         race= merman&lt;br /&gt;
     [/or]&lt;br /&gt;
 [/and]&lt;br /&gt;
Other sub tags are dealing with unit relationships:&lt;br /&gt;
:'''⇒''' The hex on which they stand: '''[filter_location]''' which contains a standard location filter.&lt;br /&gt;
:'''⇒''' The units adjacent to it: '''[filter_adjacent]''' which contains another standard unit filter&lt;br /&gt;
:'''⇒''' Their visible status relating to a particular side: '''[filter_vision]'''&lt;br /&gt;
These are nested filters ; or in other words, filters used to create conditions and not result sets (see earlier and later).&lt;br /&gt;
&lt;br /&gt;
Custom functions returning a boolean:&lt;br /&gt;
'''formula:''' FormulaAI like formula.&lt;br /&gt;
'''lua_function:''' lua function&lt;br /&gt;
&lt;br /&gt;
SUFs accept a '''find_in''' key too. As we saw earlier, this allows to restrict the starting set to the content of an array.&lt;br /&gt;
&lt;br /&gt;
=== this_unit ===&lt;br /&gt;
&lt;br /&gt;
This variable is a special variable defined only inside SUFs. Suppose we want to catch in a filter units at full health. We can use the '''hitpoints''', but the problem is we know not which value to use, because every unit type has its own:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_wml]&lt;br /&gt;
         hitpoints=?&lt;br /&gt;
     [/filter_wml]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This is why we could have the use of some way to specify the unit being fetched during the filtering.&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_wml]&lt;br /&gt;
         hitpoints=$this_unit.max_hitpoints&lt;br /&gt;
     [/filter_wml]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This does the trick. The condition value will be updated according to unit properties before executing the check.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filtering locations ===&lt;br /&gt;
&lt;br /&gt;
'''find_in''': a location array specifying the starting set.&lt;br /&gt;
&lt;br /&gt;
'''time_of_day''': one of lawful, chaotic, neutral or liminal.&lt;br /&gt;
'''time_of_day_id''': one or more from: dawn, morning, afternoon, dusk, first_watch, second_watch, indoors, underground and deep_underground.&lt;br /&gt;
    &lt;br /&gt;
'''terrain''': comma separated list of terrains.&lt;br /&gt;
'''x,y''': the same as in the unit filter; supports any range.&lt;br /&gt;
'''owner_side''': If a valid side number, restricts stored locations to villages belonging to this side. If 0, restricts to all unowned locations (the whole map except villages which belong to some valid side). A hex is considered a village if and only if its [ terrain_type ] gives_income= parameter was set to yes (which means a side can own that hex).&lt;br /&gt;
&lt;br /&gt;
'''[filter_adjacent_location]''': a standard location filter; if present the correct number of adjacent locations must match this filter&lt;br /&gt;
&lt;br /&gt;
'''[filter]''' with a Standard Unit Filter as argument; if present a unit must also be there&lt;br /&gt;
&lt;br /&gt;
'''radius''': &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;&amp;lt;u&amp;gt;this is not strictly speaking a criterion.&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt; It adds to the result set all hexes adjacent to a matching hex and is always applied last, when all criteria are checked. Remember the filtering process is a hidden loop where all candidates are fetched one by one. If a candidate match the filter, radius adds all adjacent hexes (matching the filter or not !). If it don't, it does nothing.&lt;br /&gt;
This is why this example doesn't work:&lt;br /&gt;
 [filter] '''&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;# this example doesn’t work !&amp;lt;/span&amp;gt;'''&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
         [not]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
The coder here expected the radius action to be performed just after selecting the 43,32 hex, and the '''[not]''' criterion applied to this hex and it's adjacent radius 5 set. But '''radius''' is always applied last, &amp;lt;u&amp;gt;even if written before some other conditions&amp;lt;/u&amp;gt;. So when using '''radius''', a good rule is to create the filter without it at first and to see if it can catch something. Here, it would give:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         [not]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
which is clearly non sense because the two conditions are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
The solution is to pack the conditions in two different filters:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     [and]&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             [not]&lt;br /&gt;
                 x,y=43,32&lt;br /&gt;
             [/not]&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
or,&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         [and]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
             radius=5&lt;br /&gt;
         [/and]&lt;br /&gt;
         [not]&lt;br /&gt;
              x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
or, since the x,y keys are defined in '''[filter]''' too, it can be:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     [not]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
     [/not]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This is why '''[filter_radius]''' is useful. As we said, radius adds hexes without checking any condition (except proximity of course). If we want to put a condition on hexes added with radius (and them only), we would use it as in next example. Here we want to select forested hexes near villages:&lt;br /&gt;
 [filter_location]&lt;br /&gt;
     terrain=*^V*&lt;br /&gt;
     radius=3&lt;br /&gt;
     [filter_radius]&lt;br /&gt;
         terrain=*^F*&lt;br /&gt;
     [/filter_radius]&lt;br /&gt;
 [/filter_location]&lt;br /&gt;
But, this will not work exactly as in our previous example because radius extends outwards from matching locations one step at a time. Only the locations matching the '''filter_radius''' will be selected AND used to compute the next step. If there’s no forest hex near the village, the previous filter will return nothing, even if there are some forest hexes farther in the range.&lt;br /&gt;
&lt;br /&gt;
Note this filter selects the village too ! If we want not, this should be:&lt;br /&gt;
 [filter_location]&lt;br /&gt;
     [and]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
         radius=3&lt;br /&gt;
         [filter_radius]&lt;br /&gt;
             terrain=*^F*&lt;br /&gt;
         [/filter_radius]&lt;br /&gt;
     [/and]&lt;br /&gt;
     [not]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
     [/not]&lt;br /&gt;
 [/filter_location]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nested filters ===&lt;br /&gt;
&lt;br /&gt;
Now, we are ready to study how to create nested filters, in other words, filters containing  sub filters. In location or unit filters, the documentation says one can insert filters of various kind involving other objects. In this way, we can select unit adjacent to other units or standing on some terrains. Actually, they’re not exactly filters: they are conditions or criteria built on filters. In other words, they don’t produce a result set but are, like other criteria, expressions evaluating to true or false. That’s why many of them have additional keys, like '''‘count’''' (see the filter use in conditions).&lt;br /&gt;
&lt;br /&gt;
We shall discuss this on examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filter_adjacent. ===&lt;br /&gt;
&lt;br /&gt;
In a unit filter, this allow to create criteria stating which units must be adjacent to the tested unit. In this example, we shall implement an ability named ‘escape’. Units having this ability can teleport elsewhere when surrounded by more than 3 enemies. We shall set a '''moveto''' event to watch the ‘surround’ event.&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51421</id>
		<title>FilterWML/Examples - How to use Filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51421"/>
		<updated>2013-06-17T11:40:30Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Filters uses: events actions and conditions. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Filtering ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Filters are a very important part of WML language, and a fairly complex too for various  &lt;br /&gt;
reasons. Here, we shall try to explain how to use them with more details than in the reference  &lt;br /&gt;
wiki pages. But the goal is not to replace these pages, and we assume you have at least some  &lt;br /&gt;
knowledge of the various WML filters, namely unit and location filters. The examples given  &lt;br /&gt;
below aren’t always the best way to do things: the goal here is understanding filtering, not to  &lt;br /&gt;
give a complete WML course.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basics: How filters work. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Filtering is narrowing a set of objects to a result set using criteria. Let’s give an example :  &lt;br /&gt;
given a set of cards, if one is asked to select the spades, (s)he will probably check the cards  &lt;br /&gt;
one by one and create two stacks : one containing only the spades, and another containing the  &lt;br /&gt;
unselected cards. This is a very simple filter, where the criterion is « this card has spades  &lt;br /&gt;
colour » and the result set is a card stack. &lt;br /&gt;
The spades cards are said ‘matching’ the filter.  &lt;br /&gt;
If next we’re asked to find the king of spades, most probably, we will not restart from the  &lt;br /&gt;
beginning but only scan the spades stack to find the right card. This is an example of two  &lt;br /&gt;
criteria filter. In WML we would write something like :  &lt;br /&gt;
 [filter]&lt;br /&gt;
     colour=spades&lt;br /&gt;
     value=king&lt;br /&gt;
 [/filter]&lt;br /&gt;
to describe the operation. Criteria are expressions evaluating to true or false. Is this card colour  &lt;br /&gt;
spades ? That’s how we must read the sentence: ‘colour=spades’.  &lt;br /&gt;
Now, stating both criteria must be met is not the only way to combine them:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     colour=spades,diamonds  &lt;br /&gt;
     value=king  &lt;br /&gt;
 [/filter]&lt;br /&gt;
the first expression will be true if a card colour is ‘spades OR diamonds’. It would make no  &lt;br /&gt;
sense to state they should be ‘spades AND diamonds’, of course.  &lt;br /&gt;
In many languages, you must specify how criteria combine using the special keywords ‘OR’  &lt;br /&gt;
and ‘AND’. In WML, you can do so, but most often, you’re not requested to do so. Writing  &lt;br /&gt;
explicitly the logical operators would give something like that:&lt;br /&gt;
 [filter]  &lt;br /&gt;
     [and]  &lt;br /&gt;
         colour=spades  &lt;br /&gt;
         [or]  &lt;br /&gt;
             colour=diamonds  &lt;br /&gt;
         [/or]  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 &lt;br /&gt;
     [and]  &lt;br /&gt;
         value=king  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
or in natural speech: “is card (colour=spades OR colour=diamonds) AND value=king ?” Note  &lt;br /&gt;
here the use of parenthesis. As in algebra, they mean their content must be evaluated prior to  &lt;br /&gt;
apply the last criterion.  &lt;br /&gt;
'''[and]''' and  '''[or]''' subtags are WML equivalents of parenthesis. They are not mandatory (like in some other languages), and this is a cool feature, but can be misleading in complex filters.  &lt;br /&gt;
The rule is:  &lt;br /&gt;
* listed criteria are ''ANDed'', in other words, they must all be true for the object to match the filter.  &lt;br /&gt;
* comma separated lists in a criterion are equivalent to ''ORed'' criteria. &amp;lt;br&amp;gt;In other words, one only is enough for the object to match the filter.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
'''There are some things important to note:'''&lt;br /&gt;
&lt;br /&gt;
* A complex filter can always be split into simpler filters applied in chain, each filter taking as starting set the result set of the former one. In our example, we applied the filter « value=king » to the result set of filter « color=spades ». This is important when building or debugging filters, because complex ones can easily be reduced to a chain of simpler ones.&lt;br /&gt;
&lt;br /&gt;
* Criteria order is not important from a logical point of view. We could have searched the kings first, obtaining the four kings in our result set, and the card of color spade next. The final result is the same. But in WML, for some reasons we shall study later, order can be important.&lt;br /&gt;
&lt;br /&gt;
* Result sets can contain any number of objects. One can’t assume the result set of our filter will contain a single card ‘THE king of spades’. A human being would probably stop the search when finding a king of spades, but filters don’t. If our starting card packet is not a complete set (some cards were lost, a cheater introduced some more, or anything else), you’ll find one, none or many kings of spades. It’s a common error in WML to assume filters will select a single object.&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; &lt;br /&gt;
* Any unit or location will match an empty filter like this one:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
        [filter]  &lt;br /&gt;
        [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
 [/event]&lt;br /&gt;
This event will be triggered on every move of every unit on the map.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; One can be sure only when filtering with ID’s because they are unique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Here now are two versions of the same action, using filters and not.'''  &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]  &lt;br /&gt;
This moves to side 1 all side 2 units except orcs. Please note how filter syntax is after all very close to natural speech. This is why we shall see a good way to design complex filters is writing an accurate sentence describing them first.  &lt;br /&gt;
Using no filter (and assuming ‘all_units’ is an array containing all created units in a scenario) we should write :  &lt;br /&gt;
 {FOREACH all_units i}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name= all_units[$i].side  &lt;br /&gt;
             equals=2  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [and]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name= all_units[$i].race  &lt;br /&gt;
                 not_equals=orc  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/and]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name= all_units[$i].side  &lt;br /&gt;
                 value=1  &lt;br /&gt;
             [/set_variable]  &lt;br /&gt;
             [unstore_unit]  &lt;br /&gt;
                 variable= all_units[$i]  &lt;br /&gt;
             [/unstore_unit]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
Of course, the first version is much more concise. One should mark :  &lt;br /&gt;
* Filters are hidden loops&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt; fetching all elements of the starting set.  &lt;br /&gt;
* Criteria composition is more explicit in the second version. We have here an [and] tag which is missing in the first one. It shows clearly both condition must be met. In filters, the [and] tag is most often implicit, as we already seen.&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;2) &amp;lt;/sup&amp;gt;Internally, it’s not always the case, but we’ve not to deal with internal implementations.&amp;lt;br&amp;gt;Conceptually, filters can always be seen as hidden loops.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, a question arises : where are the starting and result sets we talked about? They show nowhere. The reply is most often we don’t need to see them, because we don’t need to create result sets explicitly. We need to use them to specify actions targets or conditions. In the '''‘modify_unit’''' example, we apply the action « change side » to the result set of the filter and then need it no more.&lt;br /&gt;
The starting set is implicit too. Most of time, it’s the larger available set of objects : i.e. all created units (sometimes including the recall list) or all hexes in the map. In the '''moveto''' event, it contains only the moving unit.&lt;br /&gt;
Once again, we are not telling these sets really exist in Wesnoth engine code. But these are an accurate model of how the filters work in WML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Result sets and arrays. === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A good way to get explicitly the result set is to use the '''‘store_...’''' tags. These actions create  &lt;br /&gt;
arrays containing the result set of the filter they take as parameter. This is very useful in many ways. The common use is of course to store units and locations for some processing or later use. But one can use this to split complex filters and inspect intermediate results. The former '''‘modify_unit’''' example could be written as:  &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp1  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp2  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This trivial example shows not only how to debug complex filters (inspecting the content of ''temp1'' and ''temp2'' arrays), but how to specify a starting set with the '''‘find_in’''' key. Without it, the second '''‘store_unit’''' tag would store all units except orcs. With it, we ask to apply the filter to the content of ''temp1'' array &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; (all side 2 units). It’s like our card example where we selected the spades first and next the king(s) in the spades stack.  &lt;br /&gt;
The '''‘find-in’''' key is really precious in many cases : often it’s easier to build explicitly an array containing the objects we want to select than creating complex filters to retrieve them.  &lt;br /&gt;
For example, if we want dying units to drop weapons and other units to retrieve them, it can be very difficult to create a filter allowing to select locations where the weapons where dropped. Instead, we can build an array containing their locations (and other informations at will). Since this array have x and y members, the '''find_in''' key of a location filter can use it&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;. It would be:&lt;br /&gt;
 # in the die event &lt;br /&gt;
 [set_variables]  &lt;br /&gt;
     name=weapons  &lt;br /&gt;
     mode=append  &lt;br /&gt;
     [value]  &lt;br /&gt;
         x=$unit.x  &lt;br /&gt;
         y=$unit.y  &lt;br /&gt;
         … anything else, for instance the image name and item id.  &lt;br /&gt;
     [/value]  &lt;br /&gt;
 [/set_variables]  &lt;br /&gt;
 &lt;br /&gt;
 # drop item, etc…  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # and in a moveto event&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         [filter_location]  &lt;br /&gt;
             find_in=weapons  &lt;br /&gt;
         [/filter_location]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
&lt;br /&gt;
Let’s give another example. &lt;br /&gt;
The scenario’s map features three temples at 10,10 20,20 30,30.&lt;br /&gt;
We want to give some bonus gold to side 1 if any side 1 unit visits temple 1,2,3 exactly in that order.&lt;br /&gt;
Here is a solution using result sets arrays :  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1&lt;br /&gt;
         x,y=10,10  &lt;br /&gt;
         [not]  &lt;br /&gt;
             find_in=temple_1  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         variable=temple_1  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=$unit.id  &lt;br /&gt;
         [/filter]&lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 [/event]&lt;br /&gt;
In temple_1, we store all side 1 units visiting temple_1, but only once (that’s why the '''[not] find_in''' tag, because units can visit the temple more than once).  &lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;3) &amp;lt;/sup&amp;gt;It’s surprising because this array doesn’t contain locations, but it’s a feature, not a side effect.&lt;br /&gt;
&lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=no  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         x,y=20,20  &lt;br /&gt;
         find_in=temple_1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             find_in=temple_2  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]&lt;br /&gt;
     [store_unit]  &lt;br /&gt;
         mode=append  &lt;br /&gt;
         variable=temple_2  &lt;br /&gt;
         [filter]  &lt;br /&gt;
             id=$unit.id  &lt;br /&gt;
         [/filter]  &lt;br /&gt;
     [/store_unit]  &lt;br /&gt;
 [/event]   &lt;br /&gt;
&lt;br /&gt;
This time, we store only units previously stored in temple_1 (= they already visited that temple).&lt;br /&gt;
Then the last event is obviously :  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
     first_time_only=yes  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         x,y=30,30  &lt;br /&gt;
         find_in=temple_2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     [gold]  &lt;br /&gt;
         side=1  &lt;br /&gt;
         amount=1000  &lt;br /&gt;
     [/gold]  &lt;br /&gt;
     {CLEAR_VARIABLE temple_1,temple_2}  &lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ordering and writing === &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
We said earlier that criteria order is not significant. That's right from a theoretical point of view. But, for syntactic reasons and particularly because the radius key in location filters, this is not fully true in WML. Actually conditions are applied to candidate objects until one proves to be false or all conditions are checked. Then, if some condition proves to be false, remaining conditions &amp;lt;u&amp;gt;are not evaluated&amp;lt;/u&amp;gt; (so if there's some radius there, it will not be executed). In some cases, this may be important. One can assume conditions are evaluated in the order they are found except logical operators (and, or, not) which are evaluated &amp;lt;u&amp;gt;after&amp;lt;/u&amp;gt; other conditions. It’s very important to note that evaluation order of top level conditions (those not embedded in and/or/not tags) is undocumented, which means &amp;lt;u&amp;gt;your code shouldn’t rely on it&amp;lt;/u&amp;gt;. On the contrary, and/or/not tags are always executed last, in the order they are written.  &lt;br /&gt;
&lt;br /&gt;
So in this example:&lt;br /&gt;
 [filter]  &lt;br /&gt;
    has_weapon=sword  &lt;br /&gt;
    side=1  &lt;br /&gt;
    [or]  &lt;br /&gt;
        side=2  &lt;br /&gt;
    [/or]  &lt;br /&gt;
    gender=female  &lt;br /&gt;
 [/filter]  &lt;br /&gt;
will be executed using this order:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     has_weapon=sword  &lt;br /&gt;
     side=1  &lt;br /&gt;
     gender=female  &lt;br /&gt;
     [or]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/or]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
One should be aware of this for some reasons:&lt;br /&gt;
&lt;br /&gt;
'''⇒''' Clarity: your code will be easier to understand and to debug if you avoid meddling conditions, nested filters and logical blocks, and write them in the order they are evaluated.&lt;br /&gt;
&lt;br /&gt;
'''⇒''' Performance.&lt;br /&gt;
Most of time, performance is not an issue. But it can be if you have a lot of units and use '''[filter_wml]'''. More generally, it’s good programming practice to execute the &amp;lt;u&amp;gt;more restrictive&amp;lt;/u&amp;gt; test first.&lt;br /&gt;
Consider this example:&lt;br /&gt;
 [filter]&lt;br /&gt;
     race=orc&lt;br /&gt;
     x,y=16,22&lt;br /&gt;
 [/filter]&lt;br /&gt;
The first condition will be evaluated on all units. But the second one will be evaluated on all orcs. Then if we write:&lt;br /&gt;
 [filter]&lt;br /&gt;
     x,y=16,22&lt;br /&gt;
     race=orc&lt;br /&gt;
 [/filter]&lt;br /&gt;
obviously, the second condition will be evaluated once at most, and filtering will be faster. (Strictly speaking, I should have wrapped second condition in an '''and''' tag to force evaluation order).&lt;br /&gt;
Remember too that logical operators '''(and, or, not)''' are not mandatory, but are allowed. So one can use them for clarity sake or to force an evaluation order. It’s particularly important when using '''or''' tags.&lt;br /&gt;
&lt;br /&gt;
In the example above one could expect the result set contains all women of sides 1 and 2 wielding a sword. But it contains actually all side 1 women wielding a sword plus &amp;lt;u&amp;gt;all side 2 units&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Filters work actually as if top level criteria were enclosed in an implicit '''and''' tag: so we should read:&lt;br /&gt;
 [filter]&lt;br /&gt;
    [and] '''#implicit'''&lt;br /&gt;
        has_weapon=sword&lt;br /&gt;
        side=1&lt;br /&gt;
        gender=female&lt;br /&gt;
    [/and]&lt;br /&gt;
    [or]&lt;br /&gt;
        side=2&lt;br /&gt;
    [/or]&lt;br /&gt;
 [/filter]&lt;br /&gt;
and what we probably wanted is:&lt;br /&gt;
 [filter]&lt;br /&gt;
     has_weapon=sword&lt;br /&gt;
     gender=female&lt;br /&gt;
     [and]&lt;br /&gt;
         side=1&lt;br /&gt;
         [or]&lt;br /&gt;
             side=2&lt;br /&gt;
         [/or]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
Note that it could be written:&lt;br /&gt;
 [filter]&lt;br /&gt;
     [and]&lt;br /&gt;
         has_weapon=sword&lt;br /&gt;
         gender=female&lt;br /&gt;
     [/and]&lt;br /&gt;
     [and]&lt;br /&gt;
         side=1&lt;br /&gt;
         [or]&lt;br /&gt;
            side=2&lt;br /&gt;
         [/or]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This syntax is correct and you can use it if you find it clearer.&lt;br /&gt;
Remembering this implicit '''and''' tag (and writing it explicitly at will) is very important to understand or design complex filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Writing complex filters. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some guidelines one can use when writing complex filters. Suppose we want to set up some kind of disease aura harming units standing close to some villages. We shall start writing a sentence describing the feature.&lt;br /&gt;
&lt;br /&gt;
 '''We want to select units who:'''&lt;br /&gt;
     '''Are enemy to side 1'''&lt;br /&gt;
         '''stand on hexes which'''&lt;br /&gt;
             '''are near to'''&lt;br /&gt;
                 '''villages'''&lt;br /&gt;
                     '''with side 1 units standing on it'''&lt;br /&gt;
Mark we put only one condition on each line to clearly separate them. Mark we sorted them, because some apply to units to be filtered,  others to locations, and finally to other (enemy) units standing on locations. Next, we shall add logical operators and parenthesis to clearly specify what we want:&lt;br /&gt;
 '''Units, who ('''&lt;br /&gt;
     '''&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Are enemy to side 1&amp;lt;/span&amp;gt; AND''' &lt;br /&gt;
     '''stand on locations which ('''&lt;br /&gt;
         '''(	Are villages AND'''&lt;br /&gt;
             '''have unit on it who ('''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
          ''') OR'''&lt;br /&gt;
          '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
     ''')'''		&lt;br /&gt;
 ''')'''&lt;br /&gt;
Now, we are ready to start building the filter. Since we want units who… it shall be a unit filter. In the standard unit filter, there’s no condition directly allowing to state the unit is enemy to side 1. So we have to replace this with something valid in the SUF context. Using parenthesis to avoid errors, we can replace the condition with a side filter because it’s valid in unit filters.&lt;br /&gt;
 '''Units, who ('''&lt;br /&gt;
     '''&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;(belongs to a side which ('''&lt;br /&gt;
         '''is enemy to side 1) )&amp;lt;/span&amp;gt; AND''' &lt;br /&gt;
     '''stand on locations which ('''&lt;br /&gt;
         '''(	Are villages AND'''&lt;br /&gt;
             '''have unit on it who ('''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
         ''') OR'''&lt;br /&gt;
         '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
      ''')'''		&lt;br /&gt;
 ''')'''&lt;br /&gt;
Now we can write the filter. Here we do it step by step to show how the translation is rather straightforward and how our parenthesis match exactly the subtags.&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
            '''AND''' &lt;br /&gt;
     '''stand on locations which ( # we start to filter locations there'''&lt;br /&gt;
            '''(	Are villages AND'''&lt;br /&gt;
                '''have unit on it who ('''&lt;br /&gt;
                    '''Belongs to side 1'''&lt;br /&gt;
                ''')'''&lt;br /&gt;
            ''') OR'''&lt;br /&gt;
            '''are adjacent to THOSE villages radius 3'''&lt;br /&gt;
     ''')'''		&lt;br /&gt;
 [/filter]&lt;br /&gt;
&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
     [and] &lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
                 '''AND'''&lt;br /&gt;
             '''have unit on it who (# to unit filter again'''&lt;br /&gt;
                 '''Belongs to side 1'''&lt;br /&gt;
             ''')'''&lt;br /&gt;
             radius=3 '''# radius is a special case, see below'''&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]		&lt;br /&gt;
 [/filter]&lt;br /&gt;
&lt;br /&gt;
 [filter]&lt;br /&gt;
     [filter_side]&lt;br /&gt;
         [enemy_of]&lt;br /&gt;
             side=1&lt;br /&gt;
         [/enemy_of]&lt;br /&gt;
     [/filter_side]&lt;br /&gt;
     [and] &lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
             [and]&lt;br /&gt;
                 [filter]&lt;br /&gt;
                     side=1&lt;br /&gt;
                 [/filter]&lt;br /&gt;
             [/and]&lt;br /&gt;
             radius=3 '''# radius is a special case, see below'''&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]		&lt;br /&gt;
 [/filter]&lt;br /&gt;
Here, we are done. The filter should work as it is, but it looks rather unusual because all these '''[and]''' blocks. Actually we can delete most of them using a simple rule: '''[and]''' tags are not needed when they contain one single criterion or a single block, (except if you want to set up an evaluation order). In our example, the '''filter_location''' block is alone in its '''and''' tag, and the embedded '''filter''' as well, so we can avoid those '''and''' tags and get finally:&lt;br /&gt;
 [event]&lt;br /&gt;
     name=moveto&lt;br /&gt;
     first_time_only=no&lt;br /&gt;
     [filter]&lt;br /&gt;
         [filter_side]&lt;br /&gt;
             [enemy_of]&lt;br /&gt;
                 side=1&lt;br /&gt;
             [/enemy_of]&lt;br /&gt;
         [/filter_side]&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
             [filter]&lt;br /&gt;
                 side=1&lt;br /&gt;
             [/filter]&lt;br /&gt;
             radius=3&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/filter]&lt;br /&gt;
     [harm_unit]&lt;br /&gt;
         [filter]&lt;br /&gt;
             id=$unit.id&lt;br /&gt;
         [/filter]&lt;br /&gt;
         amount=10&lt;br /&gt;
         animate=yes&lt;br /&gt;
     [/harm_unit]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filters uses: events actions and conditions. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here, we shall deal with filter uses in WML. The language is not fully consistent, mainly to simplify its syntax, so some points can be misleading.&lt;br /&gt;
:&amp;lt;u&amp;gt;'''Using in actions'''&amp;lt;/u&amp;gt;&lt;br /&gt;
Most actions take a filter as first parameter. The main difficulty here is to know if '''[filter]''' tags must be used or not. Actually, they’re used to avoid confusing keys and criteria when they have the same name&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;. For instance, the '''[kill]''' action needs a unit filter and has these keys:&lt;br /&gt;
&lt;br /&gt;
* '''animate:''' if 'yes', displays the unit dying (fading away).&lt;br /&gt;
* '''fire_event:''' if 'yes', triggers any appropriate 'die' events (See EventWML). Note that events are only fired for killed units that have been on the map (as opposed to recall list).&lt;br /&gt;
* '''[secondary_unit]''' with a StandardUnitFilter as argument. Do not use a [filter] tag. Has an effect only if fire_event=yes. The first on-map unit matching the filter.&lt;br /&gt;
&lt;br /&gt;
As we can see, none of these keys and tags are shared with unit filter keys and tags. This means the code parser needs no '''[filter]''' tag to know which key belongs to the filter and which to the action. But in the code, there’s no obvious distinction.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;4) &amp;lt;/sup&amp;gt;Note there’s no specific top level tag for location filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [kill]&lt;br /&gt;
     animate=yes '''# this belongs to the ‘kill’'''&lt;br /&gt;
     id=BadGuy_101 '''# this belongs to the unit filter'''&lt;br /&gt;
 [/kill]&lt;br /&gt;
is the correct syntax. Note a common error is to use a '''[filter]''' tag here. Since this tag is unknown in the context, it is ignored, so the kill action is applied to the starting set, i.e. all units (including the recall lists). Same with the '''filter_side''' tag which is not needed everywhere (in '''store_sides''' particularly).&lt;br /&gt;
Adversely, '''[modify_unit]''' obviously requires a '''[filter]''' tag, because all keys and criteria have the same name:&lt;br /&gt;
 [modify_unit]&lt;br /&gt;
     side=2&lt;br /&gt;
     side=1&lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
&lt;br /&gt;
This would make no sense of course because one can’t find if side 1 units must be put into side 2 or the contrary. Anyway, there is an exception: the '''[store_unit]''' tag requires a '''[filter]''' tag even if there is no '''‘variable’''' key in units description. Another special case is when using terrain action, because the key '''terrain''' is valid both in location filters and terrain action. Since there is no special tag to delimit location filters, one should write:&lt;br /&gt;
 [terrain]&lt;br /&gt;
     [and]&lt;br /&gt;
         terrain=Wo* '''# here is the filter criterion'''&lt;br /&gt;
     [/and]&lt;br /&gt;
     terrain=Rr '''# and the new terrain'''&lt;br /&gt;
 [/terrain]&lt;br /&gt;
The next example can be confusing:&lt;br /&gt;
 [kill]'''# kill all units standing on deep water'''&lt;br /&gt;
     animate=yes&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         terrain=Wo&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/kill]&lt;br /&gt;
When reading the '''‘kill’''' tag documentation, one will not find any '''‘filter_location’''' or location filter entry. Does this means it’s an undocumented feature ? No. But the '''‘filter_location’''' belongs to the implicit '''‘filter’''' tag of the '''‘kill’''' action and is documented there. It’s kind of:&lt;br /&gt;
 [kill]'''# kill all units standing on deep water'''&lt;br /&gt;
     animate=yes&lt;br /&gt;
     '''#'''[filter] '''we’re filtering units here, not locations'''&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=Wo&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     '''#'''[/filter]&lt;br /&gt;
 [/kill]&lt;br /&gt;
&lt;br /&gt;
=== Using filters in conditions. ===&lt;br /&gt;
&lt;br /&gt;
Filters can be used to create conditional expressions. They can be nested in '''[have_unit]''' or '''[have_location]''' tags or in nested filters. Here, the result set is not used directly, but its size must fall in the range defined by the '''‘count’''' key. This finally gives a Boolean result: true or false. So one can use them in '''[if] [show_if]''' conditional actions or in a '''[filter_condition]''' tag. They are widely used in nested filters too (see the special chapter on this).&lt;br /&gt;
&lt;br /&gt;
Let’s give some examples:&lt;br /&gt;
&lt;br /&gt;
 [have_unit] '''# this piece of code evaluates to true when no more enemy leaders are alive'''&lt;br /&gt;
     canrecruit=yes&lt;br /&gt;
     [not]&lt;br /&gt;
         side=1&lt;br /&gt;
     [/not]&lt;br /&gt;
     count=0&lt;br /&gt;
 [/have_unit]&lt;br /&gt;
&lt;br /&gt;
 [have_location] '''# this one is true if at least 5 side 1 units stand on a village'''&lt;br /&gt;
     terrain=*^V*&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=1&lt;br /&gt;
     [/filter]&lt;br /&gt;
     count=5-1000&lt;br /&gt;
 [/have_location]&lt;br /&gt;
Note we could also write this condition:&lt;br /&gt;
 [have_unit]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     count=5-1000&lt;br /&gt;
 [/have_unit]&lt;br /&gt;
Note we could use a '''[store_unit]''' instead, testing the ''length'' property of the array:&lt;br /&gt;
 [store_unit]&lt;br /&gt;
     variable=temp&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=1&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             terrain=*^V*&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/filter]&lt;br /&gt;
 [/store_unit]&lt;br /&gt;
 #[if] or [filter_condition]&lt;br /&gt;
     [variable]&lt;br /&gt;
         name=temp.length&lt;br /&gt;
         greater_than=4&lt;br /&gt;
     [/variable]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using filters in events. ===&lt;br /&gt;
In events, filters are always used in a conditional way, because they state if the event should fire or not. In any event, we can set '''[filter_condition]''' using '''have_unit''' or '''have_location''' (and a more ordinary variable condition, but this is off topic).&lt;br /&gt;
Some events use filters in a special way: '''moveto''' and '''attack''' events particularly. In them, the filtering apply not on all units as usual, but only on units involved in the event action: one unit only is moving at a time, two units only are involved in a fight. Then the event fires if and only if the involved unit(s) match the filter.&lt;br /&gt;
Note that one can use '''[filter]''' and '''[filter_condition]''' in the same moveto or attack event. Both conditions are then ANDed.&lt;br /&gt;
&lt;br /&gt;
'''Filtering units'''&lt;br /&gt;
&lt;br /&gt;
Criteria allowed to filter units (in standard unit filters) are listed below. First, the keys dealing with the unit properties (as usual, comma separated lists means conditions are ORed):&lt;br /&gt;
:'''id:''' ''can be a comma-separated list, every unit with one of these ids matches''&lt;br /&gt;
:'''type:''' ''can be a list of types''&lt;br /&gt;
:'''race:''' ''(Version 1.11 and later only: this can be a comma-separated list)''&lt;br /&gt;
:'''ability:''' ''unit has an ability with the given id (not name !)''&lt;br /&gt;
:'''side:''' ''the unit is on the given side (can be a list). One can use a [filter_side] instead''&lt;br /&gt;
:'''has_weapon:''' ''the unit has a weapon with the given name''&lt;br /&gt;
:'''canrecruit:''' ''yes if the unit can recruit (i.e. is a leader)''&lt;br /&gt;
:'''gender:''' ''female if the unit is female rather than the default of male''&lt;br /&gt;
:'''role:''' ''the unit has been assigned the given role''&lt;br /&gt;
:'''level:''' ''the level of the unit''&lt;br /&gt;
:'''defense:''' ''current defense of the unit on current tile''&lt;br /&gt;
:'''movement_cost:''' ''current movement cost of the unit on current tile''&lt;br /&gt;
:'''x,y:''' ''the position of the unit. (Ranges ? probably because it works in moveto events)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not all unit properties are listed here, but they can be used in a '''[filter_wml]''' sub-tag like this:&lt;br /&gt;
 [filter_wml]&lt;br /&gt;
     max_moves=7&lt;br /&gt;
 [/filter_wml]&lt;br /&gt;
 &lt;br /&gt;
 [filter_wml]&lt;br /&gt;
     [status]&lt;br /&gt;
         poisoned=yes&lt;br /&gt;
     [/status]&lt;br /&gt;
 [/filter_wml]&lt;br /&gt;
Some of them accept comma separated lists or ranges. Some not, but it also possible to use them more than once with '''[and]''' and '''[or]''' subtags. For instance :&lt;br /&gt;
 [and]&lt;br /&gt;
     race= elf&lt;br /&gt;
     [or]&lt;br /&gt;
         race= merman&lt;br /&gt;
     [/or]&lt;br /&gt;
 [/and]&lt;br /&gt;
Other sub tags are dealing with unit relationships:&lt;br /&gt;
'''⇒''' The hex on which they stand: '''[filter_location]''' which contains a standard location filter.&lt;br /&gt;
'''⇒''' The units adjacent to it: '''[filter_adjacent]''' which contains another standard unit filter&lt;br /&gt;
'''⇒''' Their visible status relating to a particular side: '''[filter_vision]'''&lt;br /&gt;
These are nested filters ; or in other words, filters used to create conditions and not result sets (see earlier and later).&lt;br /&gt;
&lt;br /&gt;
Custom functions returning a boolean:&lt;br /&gt;
'''formula:''' FormulaAI like formula.&lt;br /&gt;
'''lua_function:''' lua function&lt;br /&gt;
&lt;br /&gt;
SUFs accept a '''find_in''' key too. As we saw earlier, this allows to restrict the starting set to the content of an array.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== this_unit ===&lt;br /&gt;
&lt;br /&gt;
This variable is a special variable defined only inside SUFs. Suppose we want to catch in a filter units at full health. We can use the '''hitpoints''', but the problem is we know not which value to use, because every unit type has its own:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_wml]&lt;br /&gt;
         hitpoints=?&lt;br /&gt;
     [/filter_wml]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This is why we could have the use of some way to specify the unit being fetched during the filtering.&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_wml]&lt;br /&gt;
         hitpoints=$this_unit.max_hitpoints&lt;br /&gt;
     [/filter_wml]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This does the trick. The condition value will be updated according to unit properties before executing the check.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filtering locations ===&lt;br /&gt;
&lt;br /&gt;
'''find_in''': a location array specifying the starting set.&lt;br /&gt;
&lt;br /&gt;
'''time_of_day''': one of lawful, chaotic, neutral or liminal.&lt;br /&gt;
'''time_of_day_id''': one or more from: dawn, morning, afternoon, dusk, first_watch, second_watch, indoors, underground and deep_underground.&lt;br /&gt;
    &lt;br /&gt;
'''terrain''': comma separated list of terrains.&lt;br /&gt;
'''x,y''': the same as in the unit filter; supports any range.&lt;br /&gt;
'''owner_side''': If a valid side number, restricts stored locations to villages belonging to this side. If 0, restricts to all unowned locations (the whole map except villages which belong to some valid side). A hex is considered a village if and only if its [ terrain_type ] gives_income= parameter was set to yes (which means a side can own that hex).&lt;br /&gt;
&lt;br /&gt;
'''[filter_adjacent_location]''': a standard location filter; if present the correct number of adjacent locations must match this filter&lt;br /&gt;
&lt;br /&gt;
'''[filter]''' with a Standard Unit Filter as argument; if present a unit must also be there&lt;br /&gt;
&lt;br /&gt;
'''radius''': &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;&amp;lt;u&amp;gt;this is not strictly speaking a criterion.&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt; It adds to the result set all hexes adjacent to a matching hex and is always applied last, when all criteria are checked. Remember the filtering process is a hidden loop where all candidates are fetched one by one. If a candidate match the filter, radius adds all adjacent hexes (matching the filter or not !). If it don't, it does nothing.&lt;br /&gt;
This is why this example doesn't work:&lt;br /&gt;
 [filter] '''&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;# this example doesn’t work !&amp;lt;/span&amp;gt;'''&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
         [not]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
The coder here expected the radius action to be performed just after selecting the 43,32 hex, and the '''[not]''' criterion applied to this hex and it's adjacent radius 5 set. But '''radius''' is always applied last, &amp;lt;u&amp;gt;even if written before some other conditions&amp;lt;/u&amp;gt;. So when using '''radius''', a good rule is to create the filter without it at first and to see if it can catch something. Here, it would give:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         [not]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
which is clearly non sense because the two conditions are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
The solution is to pack the conditions in two different filters:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     [and]&lt;br /&gt;
         [filter_location]&lt;br /&gt;
             [not]&lt;br /&gt;
                 x,y=43,32&lt;br /&gt;
             [/not]&lt;br /&gt;
         [/filter_location]&lt;br /&gt;
     [/and]&lt;br /&gt;
 [/filter]&lt;br /&gt;
or,&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         [and]&lt;br /&gt;
             x,y=43,32&lt;br /&gt;
             radius=5&lt;br /&gt;
         [/and]&lt;br /&gt;
         [not]&lt;br /&gt;
              x,y=43,32&lt;br /&gt;
         [/not]&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
 [/filter]&lt;br /&gt;
or, since the x,y keys are defined in '''[filter]''' too, it can be:&lt;br /&gt;
 [filter]&lt;br /&gt;
     side=1&lt;br /&gt;
     [filter_location]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
         radius=5&lt;br /&gt;
     [/filter_location]&lt;br /&gt;
     [not]&lt;br /&gt;
         x,y=43,32&lt;br /&gt;
     [/not]&lt;br /&gt;
 [/filter]&lt;br /&gt;
This is why '''[filter_radius]''' is useful. As we said, radius adds hexes without checking any condition (except proximity of course). If we want to put a condition on hexes added with radius (and them only), we would use it as in next example. Here we want to select forested hexes near villages:&lt;br /&gt;
 [filter_location]&lt;br /&gt;
     terrain=*^V*&lt;br /&gt;
     radius=3&lt;br /&gt;
     [filter_radius]&lt;br /&gt;
         terrain=*^F*&lt;br /&gt;
     [/filter_radius]&lt;br /&gt;
 [/filter_location]&lt;br /&gt;
But, this will not work exactly as in our previous example because radius extends outwards from matching locations one step at a time. Only the locations matching the '''filter_radius''' will be selected AND used to compute the next step. If there’s no forest hex near the village, the previous filter will return nothing, even if there are some forest hexes farther in the range.&lt;br /&gt;
&lt;br /&gt;
Note this filter selects the village too ! If we want not, this should be:&lt;br /&gt;
 [filter_location]&lt;br /&gt;
     [and]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
         radius=3&lt;br /&gt;
         [filter_radius]&lt;br /&gt;
             terrain=*^F*&lt;br /&gt;
         [/filter_radius]&lt;br /&gt;
     [/and]&lt;br /&gt;
     [not]&lt;br /&gt;
         terrain=*^V*&lt;br /&gt;
     [/not]&lt;br /&gt;
 [/filter_location]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nested filters ===&lt;br /&gt;
&lt;br /&gt;
Now, we are ready to study how to create nested filters, in other words, filters containing  sub filters. In location or unit filters, the documentation says one can insert filters of various kind involving other objects. In this way, we can select unit adjacent to other units or standing on some terrains. Actually, they’re not exactly filters: they are conditions or criteria built on filters. In other words, they don’t produce a result set but are, like other criteria, expressions evaluating to true or false. That’s why many of them have additional keys, like '''‘count’''' (see the filter use in conditions).&lt;br /&gt;
&lt;br /&gt;
We shall discuss this on examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Filter_adjacent. ===&lt;br /&gt;
&lt;br /&gt;
In a unit filter, this allow to create criteria stating which units must be adjacent to the tested unit. In this example, we shall implement an ability named ‘escape’. Units having this ability can teleport elsewhere when surrounded by more than 3 enemies. We shall set a '''moveto''' event to watch the ‘surround’ event.&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51397</id>
		<title>Guide to UMC Content</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51397"/>
		<updated>2013-06-12T12:05:40Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* A New Order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a guide to the current (1.10.x/1.11.x) UMC campaigns for players. It aims to provide all the information not only about the story, but also about completion, difficulty and playing style of the campaign. See also [[Guide_to_UMC_Campaigns/Players_Reviews|Players Reviews]], as well as http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37476 for further information and http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36733 (for currently non-available UMC-content). Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
=== Blueprint ===&lt;br /&gt;
&lt;br /&gt;
'''Status:'''&lt;br /&gt;
* Broken = Does not work at all&lt;br /&gt;
* Incomplete = Partially written, no progress&lt;br /&gt;
* WIP = Partially written, progress&lt;br /&gt;
* Complete = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
* Finished = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
'''Length:'''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
Please note: Often campaigns introducing new mechanics are listed as expert level on the add-on server, here difficulty means the raw difficulty after the mechanics are understood.&lt;br /&gt;
&lt;br /&gt;
* Unbalanced = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erraticly from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
* Easy&lt;br /&gt;
* Normal&lt;br /&gt;
* Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones.&lt;br /&gt;
&lt;br /&gt;
* Skirmish = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
* Dungeon = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
* RPG = role playing game elements such as talking with non-player-characters, item collection, dependency on a party of very few adventurers without or limited recruits&lt;br /&gt;
* Survival = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
* Large Battle = large number of units on the battlefield, sizely maps&lt;br /&gt;
* Simulation = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
* Boss battle = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
* Minigames = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:'''&lt;br /&gt;
&lt;br /&gt;
* Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
'''Custom units:'''&lt;br /&gt;
&lt;br /&gt;
* Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
&lt;br /&gt;
* Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.10.x - stable ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.10.x stable version.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== After the Storm ===&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Elynia and her band following the events of &amp;lt;i&amp;gt;Invasion from the Unknown&amp;lt;/i&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' shadowmaster/ShikadiLord&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of approximately 12 scenarios each, some of which are multi-part&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium-hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Boss Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Many custom units&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story.&lt;br /&gt;
&lt;br /&gt;
=== Aldur The Great ===&lt;br /&gt;
&lt;br /&gt;
''This is a story about Aldur the Great.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' pintercsabi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, but unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Short unbalanced campaign, maybe abandoned. You fight with Peasants, Ruffians and Woodsman against Orcs&lt;br /&gt;
&lt;br /&gt;
=== Alfhelm the Wise ===&lt;br /&gt;
&lt;br /&gt;
''This is the tale of Alfhelm, called by some the Wise, son of Alfric Conqueror. This is the tale of his victories over his enemies, and his rise to power in the clans of Marauderdom. This is the tale of his journey south and his destruction of the Lavinian Empire. And this is the tale of his demise in the dark forests far to the east of his homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 gameplay scenarios &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Moderate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Marauders.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=17144&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Though this campaign is complete and playable the whole way through, the code is four years old and pretty buggy. If you notice any errors while playing, please let me know and I'll incorporate the fixes into my next revision as soon as possible.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A New Order ===&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished. &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 45 scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The old kingdom of Wesnoth has fallen before barbarian hordes. The occupying barbarians are on the brink of civil war, the seeds of Wesnothian rebellion are kept alive by old legends, while bandits and Khalifate mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?&lt;br /&gt;
Note: This campaign contains mature themes, some of which may be unsuitable for children.&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 1.2.15&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.10. In addition, you have to install Era Khalifate add-on; the Akladian Music package is optional&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Akladians, Khalifate&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Pyrophorus) Certainly one of the most mature and well designed campaign in add-ons. A must.&lt;br /&gt;
&lt;br /&gt;
''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order Players Review]'''&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Antar.2C_Son_of_Rheor Players Review]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Story of the Northlands ===&lt;br /&gt;
&lt;br /&gt;
''A story of life and death in a remote village of the Northlands. Your village has been overrun by an orcish raid. You fight for its freedom while you wait for help to arrive.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' zepko&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + additions: you play with a custom faction of outlaws and with a custom party of loyalist knights.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Story_of_the_Northlands/en_US/A_Story_of_the_Northlands.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Vision Blinded ===&lt;br /&gt;
&lt;br /&gt;
''Defend the northern forest against what appeared like a routine orcish raid, and unravel the greater conspiracies that lie below its waves.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' LemonTea&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' AxalaraFlame&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves (+ Trolls, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463&amp;amp;hilit=a+vision+blinded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bad Moon Rising ===&lt;br /&gt;
&lt;br /&gt;
''An expedition to gather treasure from the cold north sets off compounding disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Doofus-01&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Archaic Era&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.4.4.a&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Battle Against Time===&lt;br /&gt;
&lt;br /&gt;
''Rescue fellow orcish warchief before he is executed. (This is not a normal campaign. It is experiment with carryover system. You will start with defined number of turns and gold. You will only have that many turns to play through the whole campaign. There is no finish bonus and gold carryover is always 100%.)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenarios + 1 prologue scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Orcs&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27319&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Besieged Druids ===&lt;br /&gt;
&lt;br /&gt;
''A elvish school for druids comes under attack by goblins. It seems more than just a routine raid; is there something more sinister behind this attack? - In Beseiged Druids, you control Eärendil, the surviving teacher at the school, and the many and varied initiates. Not all of these are ordinary students; many have been experimenting with other forms of magic, while others are simply overachievers in some area of study. Unfortunately, they are not especially good at combat, at least initially. Together with a very small contingent of surviving guards, it is up to these students to save the island of Aleron from disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Celtic Minstrel&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/DruidSiege/en_US/celmin-druid-siege.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37342&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bitter Revenge===&lt;br /&gt;
&lt;br /&gt;
''Amidst the strife and turmoil of the first Dark Age of Wesnoth, a time of transient monarchies and conspiracies against the Crown, the boy Darith witnesses the murder of his father by a general of Wesnoth. Follow Darith's quest for retribution in this treacherous tale of betrayal, deceit, love, remorse, and vengeance.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (mostly outlaws and undead, custom units)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26699&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cavanagh The Conqueror ===&lt;br /&gt;
&lt;br /&gt;
''This is the tale of Cavanagh Orc-Foundling, who was blessed by the gods to conquer and unite all of the Great Continent. Orcs and elves, gods and men, queens and sorcerers populate this epic tale of revenge and redemption.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' TheEmptyLord (Programming, Map-making, Editing), Scott_Free(Story)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 Playable Scenarios so far&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish, limited RPG, limited Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (Units from Northerners, Outlaws, Loyalists as well as other factions interspersed. Several custom units.)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=35927&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cities of the Frontier ===&lt;br /&gt;
&lt;br /&gt;
''Settle a new town in the wilds north of the Great River.''&lt;br /&gt;
	&lt;br /&gt;
''This campaign makes several changes to the standard Wesnoth game mechanics, and focuses on city-building and gold management.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' esci&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Not fixed, approximately 6-10 seasons of 36 turns each&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Simulation, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalist&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Cities_of_the_Frontier/en_US/Cities_of_the_Frontier.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36004&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Considerate Dead ===&lt;br /&gt;
&lt;br /&gt;
''As the wind goes on and on, people discover necromancer aren't always bad. Made by tribes45 - No scenarios are done, 4 playable out of ??.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' tribes45 aka tribes55&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete, unbalanced, abandoned&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' .009&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36522&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Count Kromire ===&lt;br /&gt;
&lt;br /&gt;
''You are the blood son of a vampire lord, however when the might of the celestial crusades comes knocking, and your father is slain, you flee your lands. However you intend to return, to restore the lands of Kromire to the Kromires, to avenge your father, and most importantly, to make sure that no celestial ever dares come into your mountains again.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' currently none&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Myths, Vampires&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=21560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Elvish Dynasty RPG ===&lt;br /&gt;
&lt;br /&gt;
''You are the new ruler of an elvish kingdom! Can you lead your people to glory? This campaign is highly randomized so it will be different every time you play!''&lt;br /&gt;
&lt;br /&gt;
''Sequel to Ooze Mini-Campaign''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' spencelack&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Wesbane&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 years, in each year choice between dialogue and fighting scenario (selected out of a large pool of possible scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9b&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=28627&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fall of Silvium ===&lt;br /&gt;
&lt;br /&gt;
''You are Caius Regilius, Tribune of the province of Silvia, located in the northmost reaches of the Lavinian Empire at the height of its power. But the Empire has overextended itself, The city of Silvium lies seperated from the rest of the Empire by the mountains of Arendia, and is sandwiched between the Marauders and the Sidhe... war is inevitable, and the province of Silvia will almost certainly fall.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Lavinian Legion.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24356&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The final level of this campaign is not supposed to be winnable. It's a final blaze of glory and chance to use all your high-powered units, but to 'win' the campaign, you must lose...the ending is similar to a certain mainline campaign, but predates it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fate of a Princess ===&lt;br /&gt;
&lt;br /&gt;
''Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the king's justice. The baron's deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.''&lt;br /&gt;
&lt;br /&gt;
''Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldres' daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne, mich, simonsmith&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26-29 scenarios (some dialogue-only), 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play two different, unique cross-faction combinations in each part.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Fate_of_a_Princess/en_US/Fate_of_a_Princess.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.17&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.12 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26327&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Fate_of_a_princess Players Review]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forgotten Kingdom ===&lt;br /&gt;
&lt;br /&gt;
''Help Orlog, a troll chieftan, lead his people to safety in the underground and discover an ancient power long forgotten.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Limabean&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chrysophylax&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete ( but all scenarios playable and balanced )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Goblins, Trolls&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Forgotten_Kingdom/en_US/Forgotten_Kingdom.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23483&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) This campaign includes a custom Troll line. A good campaign, I hope Limabean and/or Chrysophylax will finish it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forward they Cried ===&lt;br /&gt;
&lt;br /&gt;
''You are the leader of an advanced detachment that has been tasked with capturing a bridgehead while the main army prepares to attack. It should be a simple enough assignment.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Glowing Fish&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lord-Knightmare &lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 scenario ( rather a single scenario than a campaign )&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23656&amp;amp;p=350126&amp;amp;hilit=forward+they+cried#p350126&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Only a single scenario, but a great scenario.&lt;br /&gt;
(UnwiseOwl) You wouldn't want to stop thinking for a turn, and it's good for the first few turns, but this one leaves me wanting more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Galuldur's First Journey ===&lt;br /&gt;
&lt;br /&gt;
''While the belligerence of orcs is nothing new, their intensifying attacks on a fledgling colony of elves in Pindir Forest begin to show signs of a deeper malice, forcing Galuldur, the young son of the colony's adventurous founder Galur, to venture out of his forest's friendly trees in search of help. His simple errand quickly turns into a frantic quest to unearth the roots of the mysterious evil threatening his people. As you lead him through unknown lands, Galuldur, forced to match wits with unexpected adversaries at nearly every turn in a desperate attempt to save his world, quickly learns that the world is neither a friendly nor a simple place.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8-9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Galuldur/en_US/Galuldur.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31895&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Grnk the Mighty ===&lt;br /&gt;
&lt;br /&gt;
''All his life, puny little goblin Grnk the Frail had been dreaming about leaving the orcs and starting a better life.  When he finally arrives in the human town of Shmaltupp, he realizes that the world is not as black and white as he had imagined.  He also discovers that he is no ordinary goblin.  Follow Grnk the Frail on his path to becoming Grnk the Mighty.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Part I complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, changing (no standard army building gameplay)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Grnk/en_US/Grnk.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.5 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34970&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
&lt;br /&gt;
''Episode I - Seeking the Light: Long after the Fall, the last forest elves are forced to abandon their safe valley, and find themselves resorting to the dark means of necromancy in order to survive the perils and challenges of this new harsh world. May they finally free the Great Continent from its chaos, or perish in the foolish attempt of restoring peace and life to the lands.''&lt;br /&gt;
&lt;br /&gt;
''Episode II - Armageddon: As the shadow of Chaos covers the entire continent, an assorted group of foolish heroes prepares a counter-attack to the Empire, with one unique goal in their minds: defeat the evil Emperor, whoever it is. Lead these courageous living and non-living warriors to victory, and rediscover lost secrets of the history.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' shadowmaster &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Espreon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios in two episodes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Boss battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Unique. You play Elves and Undead throughout the campaign + in the 2nd part Northerners and Aragwaithi.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.90.6&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown Players Review]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (taptap) Despite its acknowledged flaws (generic hero, plot holes, deus ex machina moments, gameplay issues in the 2nd part) this is undoubtedly the most iconic campaign in UMC. It single-handedly redefines the elvish history and sketches a cosmology for the ages after the fall. With the Chaos empire and its various allies it introduces an era worth of factions to single-player play. At the same time it features some of the most beautiful maps in Wesnoth and stunning art on par with mainline campaigns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion of Eliador ===&lt;br /&gt;
&lt;br /&gt;
''A peaceful island is about to be invaded by unknadd-ons foes travelling towards the eastern shore. It is up to a family of outlaws to warn the island's inhabitants before it's too late.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Sam M. (Genosuke)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios + epilogue&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6556&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Invasion_of_Eliador]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Langrisser Sample Campaign ===&lt;br /&gt;
&lt;br /&gt;
''The Imperial Knights of the Rayguard Empire have disrupted the peace of the village that was Hein's hometown, seeking only a girl named Liana. Fight to rescue Liana.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Morath&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36417&amp;amp;hilit=Langrisser&lt;br /&gt;
&lt;br /&gt;
'''Wikipedia:''' [http://en.wikipedia.org/wiki/Langrisser What is Langrisser]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Single scenario, different from usual Wesnoth behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
&lt;br /&gt;
''The Imperialists ambitions of pushing into the Sea States have been repeatedly thwarted and now they turn their attentions elsewhere. You are an outcast Darklander now living as a mercenary in the Sea States and the rumors you hear indicate that they will be coming to your people. Though an outcast you do not wish to see them subjugated. The spirit whose friendship caused you to be an outcast has a plan that might allow you to save them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Darklanders (+ a wide variety of mercenaries)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34318&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Panther_Lord Players Review]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Random Campaign ===&lt;br /&gt;
&lt;br /&gt;
''Gain experience playing the Default Era faction of your choice in a campaign setting''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SigurdFireDragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Age of Heroes, &amp;amp; Era of Legends&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32922&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Author) A 4 scenario version is under the multiplayer button, which lets you choose any era.&lt;br /&gt;
Intended for players to gain practice with a faction and learn sound strategies using faction specific adjustments against random factions from the chosen era.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return of the Monster ===&lt;br /&gt;
&lt;br /&gt;
''It was time for Amailoss, born from the naga queen's last egg, to leave home. Time for him to grow into a leader in his own right, and eventually become the guardian and leader of another naga city. But along the way, he became friends with an unusual mud-crawler, they met a strange young monster, discovered that a spirit had escaped from an orc prison, and the mystery of that spirit became a grave challenge for Amailoss and the many races in the region....''&lt;br /&gt;
&lt;br /&gt;
''A naga campaign, involving elves, orcs, saurians, turtle-like races, and some monsters.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable, 2 dialog scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play a custom naga faction and carapaces (a turtle-like race).&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Return_of_the_Monster/en_US/Return_of_the_Monster.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36438&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Noelren ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios + 7 cut scenes&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pyrophorus&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''A story in the first Dark Age of Wesnoth. See how various heroes stick together to shun the threat of black magics, restore the secret kingdom of Noelren and install Garard I on the throne of Wesnoth. This campaign features complex scenarios, unusual objectives and units, emphasizing more on story and adventures than hardcore fighting.''&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 0.7.6&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' BfW 1.10 (not tested on 1.11)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy, unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Large Battle, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + custom units&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/ReturnToNoelren/en_US/ReturnToNoelren.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34685#p501026&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) I never saw so much fantastic and new ideas in one single UMC, wow!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Ruins ===&lt;br /&gt;
&lt;br /&gt;
''The humble farmers of Vertegris are summoned by Erik the General of Weldyn to put an end to an orcish raiding party. If they knew what would befall their former home... They never would have left. This is a relatively short campaign with 8 scenarios, It is still undergoing changes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Jeff Stevens (Ulfsark)&lt;br /&gt;
&lt;br /&gt;
'''Composer:''' Paul Fredericks (paulfredericksmusic.com)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy,Normal,Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default,(Loyalists, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x &lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37790&amp;amp;sid=9059f18497cda1219f42a626544d0ffd&amp;amp;p=540646#p540646&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) You play a short campaign with just a few units. Playable in a few hours, nevertheless it is fun to play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Salt Wars ===&lt;br /&gt;
&lt;br /&gt;
''Introductory campaign for the Era of Four Moons.''&lt;br /&gt;
&lt;br /&gt;
''As an officer of one of the Sea States you must defend your organization from aggressive rivals.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Sea States&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31498&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Saving Elensefar ===&lt;br /&gt;
&lt;br /&gt;
''Meneldur, elvish mariner of Elensefar, is driven to sea by the same orcs who attacked the city. He must gather an army willing to fight for him to regain Elensefar, his adopted homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 year (around 12 scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.2&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default Era&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?t=3072&amp;amp;start=0&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[SeafaringCampaign]]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Labeled as Expert, recruit list changes in all scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shameless Crossover Excuse ===&lt;br /&gt;
&lt;br /&gt;
''Fugitive dark sorcerer Gwiti Ha'atel discovers he has the power to mess with Wesnoth's continuity. His quest for revenge on the NPCs who have used his portraits will lead him through perils untold and in-jokes unnumbered, but shall pale before the horror he finds at his quest's end.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orcish Shyde, Mountain_King&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Undead&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32016&amp;amp;start=15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Swamplings ===&lt;br /&gt;
&lt;br /&gt;
''Banished by Yushnak the Ponderer, a tribe of lowly swamp goblins endure in the deadly mire of Pogo Bog. Four centuries before the founding of Wesnoth, this is the story of the goblins' struggle against the intrigues and betrayals of the greater races, and the rise of the first wolf rider.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' John Rawlins (boru)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.7n&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29784&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Swamplings Players Review]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Talentless Mage===&lt;br /&gt;
&lt;br /&gt;
''Humorous and silly campaign about mage apprentice who has managed to learn only one simple spell in thirty years.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 3 dialogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Noob Faction&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27608]&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Campaigns/Players_Reviews&amp;amp;action=submit#Talentless_Mage Players Review]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Dark Alliance===&lt;br /&gt;
&lt;br /&gt;
''Prince Terhar lived two years with elves. Little did he expect what would happen when he returned back to Weldyn.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 or 10 playable scenarios depending on the branch you take (+ 5 dialogue scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Recruit list changes in almost every scenario&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26924&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Dark Hordes ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11/?&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[TheDarkHordes]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [[http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Devil's Flute ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, unmaintained&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Author:''' lipk&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Creona, the well-known assassin, gets a strange job from a strange person. So, in fact, it's no surprise that things take a strange turn...&lt;br /&gt;
&lt;br /&gt;
'''Version:'''  0.1.4c&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Outlaws&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36044&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Earth's Gut ===&lt;br /&gt;
&lt;br /&gt;
''The year is 515YW. You are the young dwarven leader Hamel. Your tribe in the caves of Knalga is under pressure from its enemies, and resources are growing scarce. In order to forge the weapons required to resist your enemies, you must set forth and collect what ores and minerals remain.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, story is unfinished (I didn't add any scenario since long, but that doesn't mean nothing is added to the campaign. My addons tend to be in good shape and bug-free which means also WIP as I'm updating it since 1.4 days.)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 23 scenarios, 5 of which are cutscene only, some others have changing objectives&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Dungeon, Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, dwarves, woses, mages, a few custom units&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Earths_Gut/en_US/the_earths_gut.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.14&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This campaign is a &amp;quot;Dwarvish dungeon crawler&amp;quot; (It currently contains about as many surface scenarios as underground though.) and is intended to be challenging for experienced players on hard whilst suitably easy on easy. I develop the campaign with the wesnoth development version and I advise to play with that, but it is intended to work almost equally well with the stable wesnoth version (except for features only available in the wesnoth development version).&lt;br /&gt;
&lt;br /&gt;
=== The Epic of Vaniyera ===&lt;br /&gt;
&lt;br /&gt;
''The expansionist Lavinian Legion, led by the Imperator himself, has invaded the northern forests of the Sidhe, or Wild Elves. It is up to Leithan the Thunderblade and his advisor Vaniyera to push its armies back where they came from...''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  oreb, turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 6 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard (Don't be fooled by &amp;quot;novice level&amp;quot; in the campaign description, this one is very hard.) &lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Working on this issue, the next release (due at the end of November, hah!) should bring easy difficulty back to the level of a reasonable introduction to the IE, while the hard difficulty will also become slightly easier. With any luck, this will be the last release before version 1.0 of the campaign].&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19490&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Fall of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
''As the beloved human empire of Wesnoth becomes lazy and arrogant in its peaceful state of happiness, Emperor Dantair demands the creation of another sun in a bid to destroy all evil. Or is it all for a different purpose? A man named Alitar sees it that way, and now he must survive the most evil inhabited lands if he is to stop chaos from rising, and Wesnoth from falling... This is the story of The Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pewskeepski&lt;br /&gt;
&lt;br /&gt;
'''Status:''' 1st part complete, 2nd WIP.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Outlaws&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Fall_of_Wesnoth/en_US/The_Fall_of_Wesnoth-1.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Founding of Borstep ===&lt;br /&gt;
&lt;br /&gt;
''The chieftain of your tribe has become decadent and weak. Take over, and lead your people to a better home--whether it is already occupied or not. The Northlands in year 9W are a barbaric place, but anyone who stands in your way will learn the power of orcs!''	&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 and 1 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Northerners&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Founding_of_Borstep/en_US/The_Founding_of_Borstep.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1b&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Kanzil) I find the protagonist hard to sympathise with. Also, most scenarios contain interesting twists. For example, in one, each time you killed a boar it gives you extra health.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (beetlenaut--author) In most Orcish campaigns the leader is heroic or just wants peace. Krag-Ubor wants plunder and battle like all enemy Orcs in other campaigns. I '''hope''' you don't sympathize too strongly, but I don't think you need to in order to enjoy the game play.&lt;br /&gt;
&lt;br /&gt;
=== The Library of Kratemaqht ===&lt;br /&gt;
&lt;br /&gt;
''An ancient story from the old continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Rich Marinaccio (cephalo)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced (some scenarios are Easy - some rather Hard) &lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists and custom units.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Library_Of_Kratemaqht/en_US/The_Library_Of_Kratemaqht.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37798&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#The_Library_of_Kratemaqht Players Review]'''&lt;br /&gt;
&lt;br /&gt;
'''Notes:''' (Adamant14) This campaign has a thought-out story, shows a great love for detail;&lt;br /&gt;
It includes a great custom Dragon, some brilliant custom images (fire, burning houses, burning forest) that makes the scenery / maps look very nice.&lt;br /&gt;
&lt;br /&gt;
=== The Roar of the Woses ===&lt;br /&gt;
&lt;br /&gt;
''When the construction of a dam threatens the existence of her home, Kylix is forced on a journey to stop it.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Alarantalara&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10-11 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with Additions (primarily Saurians, Nagas, Woses)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29830&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (author) Potentially unbalanced on Hard difficulty due to experiments with non-standard ways to increase difficulty. This issue does not exist on the lower difficulty levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Three Elves ===&lt;br /&gt;
&lt;br /&gt;
''Three elves have just begun their adventure in the northern swampland. Will they become heroes or will they be responsible for another undead expansion?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Stanislav Hoferek&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios + 2 dialogue&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (Elves)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' (does it have one?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Sojournings of Grog ===&lt;br /&gt;
&lt;br /&gt;
''Grog (as starred in Under the Burning Suns) goes home.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Peter Christopher, Thomas Hockings &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Elvish_Hunter&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios in 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Sojournings_of_Grog/en_US/The_Sojournings_of_Grog.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default. Most of the time you play trolls and some desert elves accompanying Grog.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 3.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Unstoppable Legion ===&lt;br /&gt;
&lt;br /&gt;
''Horseback campaign. The kingdom of Suveran, far away from Wesnoth, is under attack. Only Deuterus, a Great Druid, knows their weakness and only Viktor, a young noble, dares go on the quest to stop them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Currently 15 playable sceanrios, including a fork of three paths near the beginning, and another fork of two paths later on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mainly Skirmish&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Unstoppable_Legion/en_US/The_Unstoppable_Legion.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Play mounted units, including expanded Cavalryman line, and completely new Bowrider line. Joined later by Dwarves. Main enemies are the dark fighters and dark cultists.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.8.7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The White Troll ===&lt;br /&gt;
&lt;br /&gt;
''The story of a white troll whelp with strange magic powers, who is raised in an elvish village.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wesnoth Italian Forum&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: you play with elves and trolls. Also features custom units with special advancements and abilities.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/White_Troll/en_US/white_troll.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38828&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== To Lands Unknown ===&lt;br /&gt;
&lt;br /&gt;
''This is the story of Mehir, the Summoner, and his journey to lands unknown.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios, 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate (Era of Magic)&lt;br /&gt;
&lt;br /&gt;
'''Style''': Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Era:''' Era of Magic&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown Players Review]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unlikely Alliance ===&lt;br /&gt;
&lt;br /&gt;
''Play as the members of an alliance between the elves, drakes, and undead after the Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Creativity&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken ( Abandoned )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 broken scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' -&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' -&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Did not work at all. Seems abandoned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Up from Slavery ===&lt;br /&gt;
&lt;br /&gt;
''The Orcei are captives in the imperial city of Lavinium, gladiators performing for the emperor Optus Maximus. All it will take, however, is one orc to lead his people to freedom. The Samnis called Sparxus may be that orc.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Arena (= No recruit, small group gladiator fights)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Orcei Gladiatores&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) At some point, I am intending to completely re-work this campaign to be a multi-player campaign, with one side led by Sparxus and one by Gravirivus. If anyone would like to take this on or has ideas for how to accomplish this, let us know. Nevertheless, its playable as a single player campaign now with some nice ideas that could be developed further.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warmaster ===&lt;br /&gt;
&lt;br /&gt;
''One day the scout of your king brings a mysterious little stone, called Zrai-Stone, back from one of his trips. Soon that stone causes a lot of trouble...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Conkinator&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.5&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 battle + 2 bonus + 1 epilogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (loyalists)&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=15527&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Way of Dragon ===&lt;br /&gt;
&lt;br /&gt;
''The story of what might happen if a person against his will transform into a dragon...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DrakeDragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish/RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37876 Wesnoth Forum]    [http://uporoom.ru/index.php/topic,179.0.html Russian Forum]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Promising short campaign, you play with just a few units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.11.x - development ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.11.x development version.''&lt;br /&gt;
&lt;br /&gt;
''Please note: Battle for Wesnoth 1.11.0 features a bug that messes up the selection of difficulty levels.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Antar.2C_Son_of_Rheor Players Review]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) The campaign did not work with BfW version 1.11.0, or BfW version 1.11.1, so please use BfW version 1.11.2 or later!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Song of Fire ===&lt;br /&gt;
&lt;br /&gt;
''''''Part I: The Last War''' - In a long-forgotten era, at the heart of the Great Continent, an ancestral evil is awakened, threatening to destroy the whole world. Follow young Myra in the war that will alter the future of Irdya and its peoples forever.''&lt;br /&gt;
&lt;br /&gt;
''''''Part II: Towards the Rising Sun''' - After the vicious Last War, Myra has become the new leader of Aragwaithi and Windsong alike. Albeit young and shaken by many losses, she must steel herself to lead her people through the vast and hostile Hannuk Steppes. However, her journey will take them all farther than in their wildest dreams. Furthermore, Myra must deal with the evil influence of the mysterious red gem she found after the last battle.''&lt;br /&gt;
&lt;br /&gt;
''''''Part III: Raging Skies''' - The refugees have finally found a new home: families are built, allies are made and, for the first time in years, Myra and her friends know peace. However, when everything seems normal, ambition and thirst for power cause the break out of a continental war. And, amidst this new storm, an old foe rises agan, more powerful than ever. Witness the end of the song of Irdya's first great heroine.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 36 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default+War of Legends&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.3.4&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38210&lt;br /&gt;
&lt;br /&gt;
=== Bad Moon Rising ===&lt;br /&gt;
&lt;br /&gt;
''An expedition to gather treasure from the cold north sets off compounding disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Doofus-01&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Archaic Era&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.8&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coming of the Storm ===&lt;br /&gt;
&lt;br /&gt;
''A new recruit joins the imperial army, eager to change the world and see combat. Little does he realise just how much action he will get and where his journey will take him. ''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' TrashMan&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 playable scenarios / 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23361&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruthless ===&lt;br /&gt;
&lt;br /&gt;
''A bard (an aging criminal) is walking in wasteland. Nothing but two hands in his pockets, and nothing but stones around. Suddenly he sees a knight on errand--a dangerous opponent, especially in broad daylight. The two strangers are soon sitting by the campfire, and the bard is telling a story.&lt;br /&gt;
(Beginner level, 10+ fights).''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' homunculus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios + 5 cutscene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal &lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (Orcs)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37874&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Recommendable campaign, with smart unusual ideas and a good detailed story.&lt;br /&gt;
You fight with few units on small but perfect maps. About the difficulty: The author describes his campaign as 'beginner level', but for me the difficulty is rather NORMAL than EASY.&lt;br /&gt;
&lt;br /&gt;
== [[Guide_to_UMC_Campaigns/Players_Reviews|Player Reviews]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Player_UMC_Reviews&amp;diff=51386</id>
		<title>Player UMC Reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Player_UMC_Reviews&amp;diff=51386"/>
		<updated>2013-06-11T13:33:21Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* After the Storm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a place where you can add your reviews for the current (1.10.x/1.11.x) UMC campaigns. Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blueprint [add the name of the reviewed campaign here] ===&lt;br /&gt;
==== Review by [add your name here] ====&lt;br /&gt;
&lt;br /&gt;
'''Tags:''' * describe the add-on using a few keywords&lt;br /&gt;
&lt;br /&gt;
'''Description:''' * a description of the important things in the add-on, like played faction, kind of enemies, gameplay style, difficulty, etc; should not be copying the author's description or contain too many spoilers&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' * a ''subjective'' description of the things you liked and disliked about the add-on (and why you liked or disliked them), should also contain some kind of overall impression&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' * add your rating of the visual part of the add-on here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Design:''' * add your rating of the general quality of scenarios here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Story:''' * add your rating of the story's quality here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' * add your rating how much enjoyment did this add-on bring to you here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' * add your rating about your tendency to play this add-on again here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Player note:''' * add your overall rating here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Link to review:''' * if you copied the review from the forums then add the related link here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth UMC campaign / reviews ==&lt;br /&gt;
&lt;br /&gt;
''Reviews for Campaigns available in the 1.10.x stable and 1.11.x development versions.''&lt;br /&gt;
&lt;br /&gt;
=== After the Storm ===&lt;br /&gt;
==== Review by vultraz ====&lt;br /&gt;
'''Tags:''' fall, dungeon, elves&lt;br /&gt;
&lt;br /&gt;
'''Description:''' After the Emperor of Chaos was defeated, the free civilizations of the Great Continent hoped that his followers would abandon the ongoing war. Meanwhile, Galas and his unlikely band of heroes head back to the northern lands to request aid for their next journey.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' This campaign is, in my opinion, one of the very best UMC campaigns. It follows the story of Elynia and her band and their adventures following the events of &amp;lt;i&amp;gt;Invasion from the Unknown&amp;lt;/i&amp;gt;. Since the campaign is divided into three episodes, I'll talk about each one separately.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Episode 1:&amp;lt;/b&amp;gt; This one starts out slow, but speeds up pretty soon. The first few scenarios capture your attention and want to make you keep playing. It features an appearance of Zocthanol Isle from &amp;lt;i&amp;gt;Under the Burning Suns&amp;lt;/i&amp;gt;, which I find quite nice. The late scenarios feature, as in all the episodes, AtS's signature dungeon crawling scenarios, of which I am very fond. My only complaint about this episode would be the third scenario, which is quite tedious after you build up a strong force. Other than that, a good episode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Episode 2:&amp;lt;/b&amp;gt; This episode jumps in right after the cliffhanger end of episode 1, and finds Elynia 1 year into the future as a result of the explosion in Wesmere. We quickly jump right into the action, and discover a very important character in scenario 2. There are a bunch of nice plot points here, including the deal made with the demon lord, and Elynia's journey to the valley from the beginning of IftU. As before, the last few scenarios feature AtS's dungeon crawling, including a very large scenario 10 map. The episode ends on what I consider a beautiful cutscene, one which finishes with a perfect flair.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Episode 3:&amp;lt;/b&amp;gt; Shadowmaster truly saved the best for last, here. Several amazing plot points come into play in this scenario, as well as an introducing of many new characters and custom units. This episode brings together almost all the plot threads that had been laid throughout the previous two episodes and IftU and wraps them up in an elegant bow, while at the same time exploring in new directions. Gameplay wise, he managed to keep the scenarios interesting and fun after all this time. More dungeon crawling, and a gigantic final scenario followed by several cutscenes wrap up this amazing campaign. One little complaint might be about scenario 4, which I found quite hard to beat.&lt;br /&gt;
&lt;br /&gt;
All in all, I thoroughly enjoyed this campaign and its story. The maps, characters, and gameplay had me hooked, and I recommend this campaign to anyone.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 10&lt;br /&gt;
&lt;br /&gt;
=== A new Order ===&lt;br /&gt;
==== Review by Pyrophorus ====&lt;br /&gt;
&lt;br /&gt;
'''Tags:''' Akladians,skirmish,story&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A new Order is a rather long campaign, telling the story of the Akladians reign over Wesnoth. In short, Akladians are a barbarian people, coming from east, flying from slavery, who took control over the decadent Wesnoth kingdom. The story begins later, when Gawen, son of the Akladian king and a Wesnoth noblewoman, have to fight his way to the throne, reconciliate Wesnothians and Akladians to face the threat of a powerful necromancer.&lt;br /&gt;
&lt;br /&gt;
The campaign is a classical skirmish with some large battles, and some riddles to solve. You'll play here Akladian and Khalifate factions. &lt;br /&gt;
&lt;br /&gt;
'''Summary:''' It is one of the more old and mature projects in UMC (eight years old !), polished and enhanced for years, and still actively updated.&lt;br /&gt;
&lt;br /&gt;
At first glance, the story can look classical and boring, but it is one of the best campaign story one can find: interesting and various characters, many plot twists, a real world description make the story really interesting and original. Not for children, as the note says, should be understood as being not the kind of childish fancy most campaigns are built on. Maps and battles have been thoroughly designed and balanced, and everything could be said perfect here, with a slight reservation about graphics (but they're progressing for now).&lt;br /&gt;
&lt;br /&gt;
A classic which many different people can enjoy.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 6&lt;br /&gt;
&lt;br /&gt;
'''Player note:''' 10&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
==== Review by Dugi ====&lt;br /&gt;
'''Tags:''' loyalists, skirmish, dungeon&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A noble's property is attacked by undead, and he has to retaliate in order to stop the undead peril. In his journey, he passes through many other settlements, some of them are attacked by the undead too, some are just naturally hostile, some are corrupted by the promise of immortality the undeath brings and send undead legions to fight him. All of them seem to be just minions of a stronger force, but before he is reached, the end of completed part is here. 9 out of intended 17 scenarios complete.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' The scenarios are designed very well, assuring that you will not get bored. Many events take place in the middles of scenarios, making scenarios less usual and different from others. Although this is a nice feature, you are frequently surprised by many elements you cannot expect and it breaks planning. There are a few special units, who have special AMLA or some special abilities, that have an unusual and very practical use on the battlefield. It is balanced quite well despite its incompleteness. The story didn't impress me, though. It is very usual, a group of loyalists going to stop a rise of a lich lord whose dreams of conquest are a endangering anyone is classic. Do not expect anything from minor events neither, the encounters in scenarios are pretty mainstream story-wise as well. Unexpected end in the middle of campaign is a really unpleasant surprise too. There is a little need to replay it, because you will know what will happen, and many of these encounters are easy with proper recruits, but maybe a few years will provide a decent amnesia for that. For short, it is a campaign strongly focusing on interesting gameplay, but if you seek heavy challenges or a deeper plot, this is not what you want.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 6&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 8 (if I forget the missing end, and assume that these scenarios are like the existing ones)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Review by tribes55, dean ====&lt;br /&gt;
'''&amp;quot;Tags:&amp;quot;''' Adventurous,Intriguing&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Description:&amp;quot;''' You play as a limited Loyalist faction, and are mainly fighting Undead, Orcish units and goblins. You have alliances with Dwarves and Elves.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Summary:&amp;quot;''' I liked how the campaign required thinking outside of the box, but I didn't like how on the first scenario there was VERY limited strategies you could use to win. Most scenarios are not like this in this campaign, though.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Surroundings:&amp;quot;''' Your surroundings are constantly changing, but the maps are always interesting and in some scenarios rewarding for exploring them.  8/10&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Design:&amp;quot;''' The scenarios aren't repetitive and leave you wanting to play the next campaign. 8/10&lt;br /&gt;
Story: Seeing as the story is what makes me want to play the campaign, and this one kept me to the very end of the currently limited scenarios I'd give it story a 8/10.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Fun:&amp;quot;''' * Very rarely was I bored. 7/10&lt;br /&gt;
Replay value: * Some scenarios challenge you to do the Scenario in a more efficient way which would make me want to replay the campaign and see what I could do better this time. 7/10&lt;br /&gt;
&lt;br /&gt;
Player note: * &lt;br /&gt;
Overall rating would be 8/10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fate of a princess ===&lt;br /&gt;
==== Review by Paulomat4 ====&lt;br /&gt;
'''Tags:''' elves, rogues, riders, skirmish, dungeon, RPG&lt;br /&gt;
&lt;br /&gt;
Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the kings justice. The barons deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.&lt;br /&gt;
Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldreds daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' Nice story, which is composed of two parts. In the first part you mainly fight with bandit knights, and often have to rush from one point to another. in the second part, gameplay consists of elves, and various other races like drakes or saurians or dwarves. You will fight various races in the first part, and mostly orcs in the second. The campaign feature many custom units, and some your heroes will even have AMLA advancements. Also you will be able to collect many items through the campaign, which may cause some units to be overpowered but this is also bound to storyline reasons. The story reveals a lot about the northlands and their different factions.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
==== Review by Dugi ====&lt;br /&gt;
'''Tags:''' elves, undead, skirmish, dungeon, puzzle&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Starting with usual elves in forests and deserts, quickly adding the undead faction in a battle against several custom factions, evil human army, mysterious Verlissh, sinister demons, robotic automatons and dreadful, biomechanic Shaxtrals, that progresses through caves and steppes into the mysterious Dark Hive, where the Shadow Master dwells. 30 scenarios. Complete.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' This campaign has a good and interesting story, enough long to develop an army of recalls an use it well. You will encounter many new kinds of enemies, assuring that you will never get bored, even if you aren't a fan of the default era. Its gameplay is unique in many ways, frequently, the enemies are just coming, and you have to pass through the area instead of defeating some leader. Another speciality are boss fights, when you can defeat a boss only using some special technique. The campaign is also balanced pretty well, easy difficulty is to enjoy the story, hard difficulty is really challenging.&lt;br /&gt;
However, almost all new units lack animations of any kind, that harms the visual part of this add-on. Also, some elements of the storyline are too exaggerated. But these little problems will not spoil anything.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 10&lt;br /&gt;
&lt;br /&gt;
''Review by Dugi''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
==== Review by Raijer ====&lt;br /&gt;
'''Description''': A huge campaign that will be 10 chapters long (9 chapters currently), and will have more than 200 scenarios. This campaign follows 2 heroes that find a way to eternal life, going through times, before and after the Fall, and witnessing some of the most important events in Wesnoth's history, like the raise of the second sun.&lt;br /&gt;
&lt;br /&gt;
The player will be able to use humans, elves, but also undead and some special units, and will fight against basically anything you can imagine, going from orcs to demons and passing by some robots. It includes an item system, with enemy drops, crafting and gears, giving additions to units' normal attacks. The history permits to get a huge recall list, with level 4 units in the main races used and new AMLAs possibilities.&lt;br /&gt;
&lt;br /&gt;
'''Summary''': This campaign has a really long story, which explains some of Wesnoth's history that wasn't talked much about in other campaigns. Despite its length, it actually never gets boring because the story is well-done, stays really coherent, but also because of the scenarios' diversity, having huge battles but also some dungeons, and special objectives. I really like how this campaign makes a mix of Wesnoth's turn-based system and the basic RPG's system, like spells, items, crafting and more… But also because it creates new strategies that can't be found in normal campaigns, thanks to the item system and AMLAs that weren't really used in other campaigns, while keeping Wesnoth's basic way of playing. The difficulty is pretty much standard, as easy being easy for everyone, and hard being really hard and most likely a huge tactical challenge. Though some scenarios in normal can be seen as really easy or really hard.&lt;br /&gt;
&lt;br /&gt;
I'm really happy about this campaign because it permits to personalize your units depending on what you want them to be able to do with the AMLAs, but also with the huge item bank. I also liked the story, because i don't like how some part in Wesnoth's history are left unexplained, and this campaign goes through Irdya's history, filling some blanks. Finally, i would like to say that this campaign can be played again and again, as there are some secret scenarios, but also infinite possibilities with the items and AMLAs, which make each time completely different.&lt;br /&gt;
&lt;br /&gt;
The bad sides: the item inventory is slow (seems like it will be fixed), can be really annoying in the later parts. The leaders can seem overpowered to unacquainted players though it changes as you advance. The balance isn't complete yet, but it most likely will be done as soon as the story itself is finished. There still are some bugs around, but none that stops from playing as far as i know.&lt;br /&gt;
And last, big problem: THERE'S ONLY 1 CHAPTER LEFT BEFORE THE STORY ENDS!&lt;br /&gt;
&lt;br /&gt;
'''Surroundings''': 7&lt;br /&gt;
&lt;br /&gt;
'''Design''': 7&lt;br /&gt;
&lt;br /&gt;
'''Story''': 10&lt;br /&gt;
&lt;br /&gt;
'''Fun''': 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value''': 9&lt;br /&gt;
&lt;br /&gt;
'''Player note''': 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Review by bumbadadabum ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' (quoting Raijer) A huge campaign that will be 10 chapters long (9 chapters currently), and will have more than 200 scenarios. This campaign follows 2 heroes that find a way to eternal life, going through times, before and after the Fall, and witnessing some of the most important events in Wesnoth's history, like the raise of the second sun.&lt;br /&gt;
&lt;br /&gt;
The player will be able to use humans, elves, but also undead and some special units, and will fight against basically anything you can imagine, going from orcs to demons and passing by some robots. It includes an item system, with enemy drops, crafting and gears, giving additions to units' normal attacks. The history permits to get a huge recall list, with level 4 units in the main races used and new AMLAs possibilities. &lt;br /&gt;
&lt;br /&gt;
'''Summary:''' I didn't like this campaign a single bit. The scenarios feel like they've been designed 'in a hurry' without paying any attention to detail. The lack of variety or events in scenarios make them very boring to play, and often made me want to just :n and be done with them. The scale of the scenarios is completely blown out of scale, and this makes it extremely tedious to play, as everytime you press the end turn button you have to wait for the literally hundreds of enemies to move. The maps are not horrible, but far from mainline level. The story (which is one of the most important things in a campaign for me) is perhaps one of the worst things about this campaign. The dialog is badly written (in places where it is present. There isn't much dialog outside of starting dialog) and feels completely emotionless. The characters are paper-thin and not very well developed, and that only contributes to my thinking that the entire story is only there to tie the 185 scenarios together. It feels ridiculous and sometimes made me wonder what I was doing with my life, after I read another dialog. The art of the campaign consists mostly of bad frankensteins or horribly drawn units, with the exceptions of the portraits for Efraim and Lethalia, which actually look pretty decent. Overall, I feel like the pretty good idea behind the RPG engine, which in my opinion is also poorly executed, has gone to waste by it being in this campaign. I think this campaign is bad and doesn't deserve any of the praise it often receives on the forums. I would not recommend this campaign to anyone.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 4&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 2&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 3&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 3&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 4&lt;br /&gt;
&lt;br /&gt;
'''Player note:''' 2&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
==== Review by taptap ====&lt;br /&gt;
&lt;br /&gt;
Panther Lord is one of my favourite campaigns and on higher difficulties one of the most challenging. Unlike many campaigns with an anticlimactic end (Northern Rebirth, Heir to the Throne etc.) it is unrelenting from start until the end (I suffered more than 140 casualties during its 14 scenarios). Velensk is a good player and it shows. &lt;br /&gt;
&lt;br /&gt;
This is the showcase campaign for the Era of Four Moons, while Salt Wars is a short and much easier introduction. The Era itself is well balanced, with many novel ideas and no elves. Admittedly, at first I shuddered at the idea of playing &amp;quot;half-naked wild with dark-coloured sprites&amp;quot; - I was quite troubled that it might be a collection of racist stereotypes, but playing with it, it certainly didn't feel so. (Much better indeed than the typical association of orcs in Tolkien-esque fantasy with mongols / turks.) There aren't only tribal Darklanders and Highlanders, but Sea States and Imperialists as well. Each of them plays very differently, none of them is depicted as timeless or &amp;quot;always chaotic evil&amp;quot;, even the Imperialists, the enemies in the campaign, get the opportunity to declare themselves. It certainly benefits from the background world (IALFA developed by the maintainer of the campaign) even if you only see a glimpse of it. &lt;br /&gt;
&lt;br /&gt;
The hero of the campaign is a mercenary outcast of his own Darklander civilization. When learning about plans to raze and colonize the jungles of his people by the imperialists he starts the quest to rescue his people. His friend the Panther spirit, to whom the campaign owes its name, always at his side, he is rallying troops and mercenaries around him, but soon he has to realize that change is inevitable. Changing their ways they may have hope to withstand or else they will be changed by force and subjugation. But how to convince his own people when he is an upstart at best, a traitor and spirit-friend at worst?&lt;br /&gt;
&lt;br /&gt;
While the campaign is centered around Darklanders, the player has the choice of hiring (and recalling) a limited amount of highly useful mercenaries of the other factions of the Era. The campaign features small scale to a few large scale battles and puts different territory to good use encouraging the use of mercenaries and different unit types. I omit the numbers, but this campaign is certainly recommended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Swamplings ===&lt;br /&gt;
==== Review by Dunno ====&lt;br /&gt;
'''Description:''' Swamplings is the name of goblin tribe living in swamps, banished by orcs. In an unfortunate turn of events, those goblins get tangled up in human affairs and must fight for their very survival. The player also learns how goblins started riding wolves.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' It's a decent, finished and stable campaign with interesting plot. There are many humorous scenes and some serious ones, there are standard battle scenarios and various original missions. There are also some high quality custom sprites, and maps are very good as well. It won't make your jaw drop, however, it's just a modest, enjoyable campaign.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 9&lt;br /&gt;
&lt;br /&gt;
==== Review by Pyrophorus ====&lt;br /&gt;
&lt;br /&gt;
'''Tags:''' goblins,skirmish,story&lt;br /&gt;
&lt;br /&gt;
'''Description:''' see previous review.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' This campaign is very original and imaginative. First of all, it features not chivalrous heroes like most Wesnoth campaigns, but humble and rather stubborn people instead. More of it, the story is much more picaresque than epic, written in a delicious humorous tone, very unusual in Wesnoth world. IMO, it's one of the few really good writing one can find here. It's impossible to abstract this complex story, where everything goes in an unexpected way, to list every strange encounter, funny event and so on. If you like good writing, humor, as well as hardcore fighting, you'll really love this campaign. If not, just as Dunno says, it's honest, no more.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 7&lt;br /&gt;
&lt;br /&gt;
=== Talentless Mage ===&lt;br /&gt;
==== Review by Dunno ====&lt;br /&gt;
'''Description:''' A humorous story about a mage who managed to learn only one spell in his life and who takes command of N.O.O.B.S. (Noticeably - Optimal - Outstanding - Brilliant - Soldiers) squad. N.O.O.B.S. advance through amla with basic options like melee attack, melee damage etc. &lt;br /&gt;
&lt;br /&gt;
'''Summary:''' this here is Wesnoth parody at its best. The campaign mocks the common cliches in Wesnoth campaigns and overused events, like loyal units coming out of villages, random magical items scattered around the map and low quality frankensprites. Very absurd and pythonesque at times, you will keep smiling and laughing through the whole story.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 6&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Library of Kratemaqht ===&lt;br /&gt;
==== Review by Wesbane ====&lt;br /&gt;
The campaign is about genesis, course and outcome of civil war in empire of Anaktoron.&lt;br /&gt;
Surroundings:&lt;br /&gt;
The way campaign looks. How it feels and uses game engine is simply amazing and unseen before.&lt;br /&gt;
Maps are nicely done although many parts of a map serve for story (decorative) purpose only what is not always good. You will travel through wealthy and populous kingdom which is torn apart by war. To create this impression in most of maps there is a lot of villages and they are placed in large groups, but map look doesn't suffer from it. More over you can feel destruction in game world as never before. Campaign features custom burning houses which are not only mere visual effect but have impact on battle course.&lt;br /&gt;
It is one of most cinematic campaigns if not the most. Cutscenes are packed with action and take place in several locations. Also game transition fluently into cutscene and cutscene into game. What makes it even more interesting since you will never know is it just a cutscene?&lt;br /&gt;
In terms of visual effects it also features the best epilogue ever.&lt;br /&gt;
As it was not enough you can experience a true wesnoth dragon. It is so unusual that it need separate mention.&lt;br /&gt;
Dragon is fully animated and have some nice custom sounds. Some of it animations are purely character play. Like roar and feasting. And last, but not least it preserves original wesnoth dragon concepts. It attacks with fangs and tail. Although it primary weapon is ranged magical fire breath which works as AoE attack when used offensively. There is one little bug with its animation, but it can't be noticed during playing it anyway.&lt;br /&gt;
In short this campaign surely establish new standards for wesnoth in department of visuals.&lt;br /&gt;
Design:&lt;br /&gt;
Scenarios design is good. All levels are playable. Objectives are clearly formed, so it is known most of the time what to do. There are several minor bugs and one bigger that affects game to some degree. However they do not make impossible to play and enjoy campaign.&lt;br /&gt;
Campaign is using default units although sometimes with unusual traits and abilities. Custom units are also present, but only as much as they are needed. Which is a great thing since it proves designer skill at using available resources. Beside that I really can't stand campaigns introducing many user made units.&lt;br /&gt;
I liked much idea of premagic era and weakened magic users. Unfortunately any extra mages aren't useful since you have already better characters of this class. In fact after my recall list was cleaned up after Jevyans Return I never bothered to recruit them again.&lt;br /&gt;
Gold carryover system is custom which is not a good choice for classic style adventure. Twenty percent instead of forty. Most probably this is caused by slightly overpopulated maps. Campaign is very easy, except two scenarios: Refugees and Loyalty's Cruel Reward. There is no moderately difficult scenarios. The huge difference between average level difficulty and hardest level is just to big. Most difficult scenarios are Refugees and Loyaltys Cruel Reward.&lt;br /&gt;
Story:&lt;br /&gt;
Amount of delivered information is enough. Writing style is good. Beginning is terrific. Switching between protagonists is cool, and quite innovative idea. Overall concept is nicely executed and creator skillfully merged a lot of facts from mainline into own story. To fully appreciate this playing The Rise of Wesnoth is recommended. However ending I found disappointing. It seemed rushed and unconvincing. Also few details don't match to reality of Irdya.&lt;br /&gt;
Fun:&lt;br /&gt;
Campaign is definitely entertaining. Well done battles. Good dialog. And full of fresh ideas. You can play as good and bad in a single campaign! Although I have nothing against being awesome most of the time enemies fell way to easily to my taste.&lt;br /&gt;
Replay value:&lt;br /&gt;
Campaign is nicely done and straight forward. Although there is nothing that would reject you from playing it again, there is nothing that would encourage you to do that either. No hidden secrets, no tactical challenges, no extra levels. No satisfying ending.&lt;br /&gt;
&lt;br /&gt;
Summary:&lt;br /&gt;
Overall it is well made, really great, easy campaign suitable for beginners with story explaining some events from The Rise of Wesnoth. Bringing new standards in design, especially visual ones. It story is shown from several angles what is unique feature, but unfortunately potential of this solution wasn't used at all. If you are looking for deep plot, and tactical challenge you won't find it here.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings: 10&lt;br /&gt;
&lt;br /&gt;
'''Design: 6&lt;br /&gt;
&lt;br /&gt;
'''Story: 7&lt;br /&gt;
&lt;br /&gt;
'''Fun: 7&lt;br /&gt;
&lt;br /&gt;
'''Replay value: 5&lt;br /&gt;
&lt;br /&gt;
'''Campaign score: 7&lt;br /&gt;
&lt;br /&gt;
'''Player note: 8&lt;br /&gt;
&lt;br /&gt;
'''Link to review:''' [http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37798&amp;amp;start=45#p551674]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== To Lands Unknown ===&lt;br /&gt;
==== Review by Dunno ====&lt;br /&gt;
'''Description:''' This campaign tells about Mehir, a Summoner, who's working on a great quest of making the biggest magical circle ever made. If he and other summoners succeed, activating the circle will bring them to the Abyss, the lands unknown.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' The main idea behind this campaign and the Era of Magic (used by To Lands Unknown) is to take Wesnoth graphics to an entirely new level. Maps are no longer simple, repetitive hexes, instead many maps are absolutely mindblowing landscapes. In addition, all units are well made and animated. The story and gameplay, however, could have been done better. The campaign is quite long, and at times battles get boring.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 5&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Back to Guide to UMC Campaigns ==&lt;br /&gt;
* '''[http://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Campaigns Guide to UMC Campaigns]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Feedback Thread ==&lt;br /&gt;
If you have criticism, ideas and suggestions then please post it in the feedback thread.&lt;br /&gt;
&lt;br /&gt;
Or maybe you don't want, or don't know how to edit the wiki page, then you can post your review also here. I will add it then to this page.&lt;br /&gt;
* '''[http://forums.wesnoth.org/viewtopic.php?f=17&amp;amp;t=38946 Feedback Thread]'''&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Player_UMC_Reviews&amp;diff=51385</id>
		<title>Player UMC Reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Player_UMC_Reviews&amp;diff=51385"/>
		<updated>2013-06-11T12:51:39Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Swamplings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a place where you can add your reviews for the current (1.10.x/1.11.x) UMC campaigns. Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blueprint [add the name of the reviewed campaign here] ===&lt;br /&gt;
==== Review by [add your name here] ====&lt;br /&gt;
&lt;br /&gt;
'''Tags:''' * describe the add-on using a few keywords&lt;br /&gt;
&lt;br /&gt;
'''Description:''' * a description of the important things in the add-on, like played faction, kind of enemies, gameplay style, difficulty, etc; should not be copying the author's description or contain too many spoilers&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' * a ''subjective'' description of the things you liked and disliked about the add-on (and why you liked or disliked them), should also contain some kind of overall impression&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' * add your rating of the visual part of the add-on here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Design:''' * add your rating of the general quality of scenarios here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Story:''' * add your rating of the story's quality here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' * add your rating how much enjoyment did this add-on bring to you here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' * add your rating about your tendency to play this add-on again here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Player note:''' * add your overall rating here (1-10)&lt;br /&gt;
&lt;br /&gt;
'''Link to review:''' * if you copied the review from the forums then add the related link here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth UMC campaign / reviews ==&lt;br /&gt;
&lt;br /&gt;
''Reviews for Campaigns available in the 1.10.x stable and 1.11.x development versions.''&lt;br /&gt;
&lt;br /&gt;
=== After the Storm ===&lt;br /&gt;
==== Review by vultraz ====&lt;br /&gt;
'''Tags:''' fall, dungeon, elves&lt;br /&gt;
&lt;br /&gt;
'''Description:''' After the Emperor of Chaos was defeated, the free civilizations of the Great Continent hoped that his followers would abandon the ongoing war. Meanwhile, Galas and his unlikely band of heroes head back to the northern lands to request aid for their next journey.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' This campaign is, in my opinion, one of the very best UMC campaigns. It follows the story of Elynia and her band and their adventures following the events of &amp;lt;i&amp;gt;Invasion from the Unknown&amp;lt;/i&amp;gt;. Since the campaign is divided into three episodes, I'll talk about each one separately.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Episode 1:&amp;lt;/b&amp;gt; This one starts out slow, but speeds up pretty soon. The first few scenarios capture your attention and want to make you keep playing. It features an appearance of Zocthanol Isle from &amp;lt;i&amp;gt;Under the Burning Suns&amp;lt;/i&amp;gt;, which I find quite nice. The late scenarios feature, as in all the episodes, AtS's signature dungeon crawling scenarios, of which I am very fond. My only complaint about this episode would be the third scenario, which is quite tedious after you build up a strong force. Other than that, a good episode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Episode 2:&amp;lt;/b&amp;gt; This episode jumps in right after the cliffhanger end of episode 1, and finds Elynia 1 year into the future as a result of the explosion in Wesmere. We quickly jump right into the action, and discover a very important character in scenario 2. There are a bunch of nice plot points here, including the deal made with the demon lord, and Elynia's journey to the valley from the beginning of IftU. As before, the last few scenarios feature AtS's dungeon crawling, including a very large scenario 10 map. The episode ends on what I consider a beautiful cutscene, one which finishes with a perfect flair.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Episode 3:&amp;lt;/b&amp;gt; Shadowmaster truly saved the best for last, here. Several amazing plot points come into play in this scenario, as well as an introducing of many new characters and custom units. This episode brings together almost all the plot threads that had been laid throughout the previous two episodes and IftU and wraps them up in an elegant bow, while at the same time exploring in new directions. Gameplay wise, he managed to keep the scenarios interesting and fun after all this time. More dungeon crawling, and a gigantic final scenario followed by several cutscenes wrap up this amazing campaign. One little complaint might be about scenario 4, which I found quite hard to beat.&lt;br /&gt;
&lt;br /&gt;
All in all, I thoroughly enjoyed this campaign and its story. The maps, characters, and gameplay had me hooked, and I recommend this campaign to anyone.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
==== Review by Dugi ====&lt;br /&gt;
'''Tags:''' loyalists, skirmish, dungeon&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A noble's property is attacked by undead, and he has to retaliate in order to stop the undead peril. In his journey, he passes through many other settlements, some of them are attacked by the undead too, some are just naturally hostile, some are corrupted by the promise of immortality the undeath brings and send undead legions to fight him. All of them seem to be just minions of a stronger force, but before he is reached, the end of completed part is here. 9 out of intended 17 scenarios complete.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' The scenarios are designed very well, assuring that you will not get bored. Many events take place in the middles of scenarios, making scenarios less usual and different from others. Although this is a nice feature, you are frequently surprised by many elements you cannot expect and it breaks planning. There are a few special units, who have special AMLA or some special abilities, that have an unusual and very practical use on the battlefield. It is balanced quite well despite its incompleteness. The story didn't impress me, though. It is very usual, a group of loyalists going to stop a rise of a lich lord whose dreams of conquest are a endangering anyone is classic. Do not expect anything from minor events neither, the encounters in scenarios are pretty mainstream story-wise as well. Unexpected end in the middle of campaign is a really unpleasant surprise too. There is a little need to replay it, because you will know what will happen, and many of these encounters are easy with proper recruits, but maybe a few years will provide a decent amnesia for that. For short, it is a campaign strongly focusing on interesting gameplay, but if you seek heavy challenges or a deeper plot, this is not what you want.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 6&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 8 (if I forget the missing end, and assume that these scenarios are like the existing ones)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Review by tribes55, dean ====&lt;br /&gt;
'''&amp;quot;Tags:&amp;quot;''' Adventurous,Intriguing&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Description:&amp;quot;''' You play as a limited Loyalist faction, and are mainly fighting Undead, Orcish units and goblins. You have alliances with Dwarves and Elves.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Summary:&amp;quot;''' I liked how the campaign required thinking outside of the box, but I didn't like how on the first scenario there was VERY limited strategies you could use to win. Most scenarios are not like this in this campaign, though.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Surroundings:&amp;quot;''' Your surroundings are constantly changing, but the maps are always interesting and in some scenarios rewarding for exploring them.  8/10&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Design:&amp;quot;''' The scenarios aren't repetitive and leave you wanting to play the next campaign. 8/10&lt;br /&gt;
Story: Seeing as the story is what makes me want to play the campaign, and this one kept me to the very end of the currently limited scenarios I'd give it story a 8/10.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Fun:&amp;quot;''' * Very rarely was I bored. 7/10&lt;br /&gt;
Replay value: * Some scenarios challenge you to do the Scenario in a more efficient way which would make me want to replay the campaign and see what I could do better this time. 7/10&lt;br /&gt;
&lt;br /&gt;
Player note: * &lt;br /&gt;
Overall rating would be 8/10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fate of a princess ===&lt;br /&gt;
==== Review by Paulomat4 ====&lt;br /&gt;
'''Tags:''' elves, rogues, riders, skirmish, dungeon, RPG&lt;br /&gt;
&lt;br /&gt;
Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the kings justice. The barons deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.&lt;br /&gt;
Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldreds daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' Nice story, which is composed of two parts. In the first part you mainly fight with bandit knights, and often have to rush from one point to another. in the second part, gameplay consists of elves, and various other races like drakes or saurians or dwarves. You will fight various races in the first part, and mostly orcs in the second. The campaign feature many custom units, and some your heroes will even have AMLA advancements. Also you will be able to collect many items through the campaign, which may cause some units to be overpowered but this is also bound to storyline reasons. The story reveals a lot about the northlands and their different factions.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
==== Review by Dugi ====&lt;br /&gt;
'''Tags:''' elves, undead, skirmish, dungeon, puzzle&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Starting with usual elves in forests and deserts, quickly adding the undead faction in a battle against several custom factions, evil human army, mysterious Verlissh, sinister demons, robotic automatons and dreadful, biomechanic Shaxtrals, that progresses through caves and steppes into the mysterious Dark Hive, where the Shadow Master dwells. 30 scenarios. Complete.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' This campaign has a good and interesting story, enough long to develop an army of recalls an use it well. You will encounter many new kinds of enemies, assuring that you will never get bored, even if you aren't a fan of the default era. Its gameplay is unique in many ways, frequently, the enemies are just coming, and you have to pass through the area instead of defeating some leader. Another speciality are boss fights, when you can defeat a boss only using some special technique. The campaign is also balanced pretty well, easy difficulty is to enjoy the story, hard difficulty is really challenging.&lt;br /&gt;
However, almost all new units lack animations of any kind, that harms the visual part of this add-on. Also, some elements of the storyline are too exaggerated. But these little problems will not spoil anything.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Player Note:''' 10&lt;br /&gt;
&lt;br /&gt;
''Review by Dugi''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
==== Review by Raijer ====&lt;br /&gt;
'''Description''': A huge campaign that will be 10 chapters long (9 chapters currently), and will have more than 200 scenarios. This campaign follows 2 heroes that find a way to eternal life, going through times, before and after the Fall, and witnessing some of the most important events in Wesnoth's history, like the raise of the second sun.&lt;br /&gt;
&lt;br /&gt;
The player will be able to use humans, elves, but also undead and some special units, and will fight against basically anything you can imagine, going from orcs to demons and passing by some robots. It includes an item system, with enemy drops, crafting and gears, giving additions to units' normal attacks. The history permits to get a huge recall list, with level 4 units in the main races used and new AMLAs possibilities.&lt;br /&gt;
&lt;br /&gt;
'''Summary''': This campaign has a really long story, which explains some of Wesnoth's history that wasn't talked much about in other campaigns. Despite its length, it actually never gets boring because the story is well-done, stays really coherent, but also because of the scenarios' diversity, having huge battles but also some dungeons, and special objectives. I really like how this campaign makes a mix of Wesnoth's turn-based system and the basic RPG's system, like spells, items, crafting and more… But also because it creates new strategies that can't be found in normal campaigns, thanks to the item system and AMLAs that weren't really used in other campaigns, while keeping Wesnoth's basic way of playing. The difficulty is pretty much standard, as easy being easy for everyone, and hard being really hard and most likely a huge tactical challenge. Though some scenarios in normal can be seen as really easy or really hard.&lt;br /&gt;
&lt;br /&gt;
I'm really happy about this campaign because it permits to personalize your units depending on what you want them to be able to do with the AMLAs, but also with the huge item bank. I also liked the story, because i don't like how some part in Wesnoth's history are left unexplained, and this campaign goes through Irdya's history, filling some blanks. Finally, i would like to say that this campaign can be played again and again, as there are some secret scenarios, but also infinite possibilities with the items and AMLAs, which make each time completely different.&lt;br /&gt;
&lt;br /&gt;
The bad sides: the item inventory is slow (seems like it will be fixed), can be really annoying in the later parts. The leaders can seem overpowered to unacquainted players though it changes as you advance. The balance isn't complete yet, but it most likely will be done as soon as the story itself is finished. There still are some bugs around, but none that stops from playing as far as i know.&lt;br /&gt;
And last, big problem: THERE'S ONLY 1 CHAPTER LEFT BEFORE THE STORY ENDS!&lt;br /&gt;
&lt;br /&gt;
'''Surroundings''': 7&lt;br /&gt;
&lt;br /&gt;
'''Design''': 7&lt;br /&gt;
&lt;br /&gt;
'''Story''': 10&lt;br /&gt;
&lt;br /&gt;
'''Fun''': 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value''': 9&lt;br /&gt;
&lt;br /&gt;
'''Player note''': 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Review by bumbadadabum ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' (quoting Raijer) A huge campaign that will be 10 chapters long (9 chapters currently), and will have more than 200 scenarios. This campaign follows 2 heroes that find a way to eternal life, going through times, before and after the Fall, and witnessing some of the most important events in Wesnoth's history, like the raise of the second sun.&lt;br /&gt;
&lt;br /&gt;
The player will be able to use humans, elves, but also undead and some special units, and will fight against basically anything you can imagine, going from orcs to demons and passing by some robots. It includes an item system, with enemy drops, crafting and gears, giving additions to units' normal attacks. The history permits to get a huge recall list, with level 4 units in the main races used and new AMLAs possibilities. &lt;br /&gt;
&lt;br /&gt;
'''Summary:''' I didn't like this campaign a single bit. The scenarios feel like they've been designed 'in a hurry' without paying any attention to detail. The lack of variety or events in scenarios make them very boring to play, and often made me want to just :n and be done with them. The scale of the scenarios is completely blown out of scale, and this makes it extremely tedious to play, as everytime you press the end turn button you have to wait for the literally hundreds of enemies to move. The maps are not horrible, but far from mainline level. The story (which is one of the most important things in a campaign for me) is perhaps one of the worst things about this campaign. The dialog is badly written (in places where it is present. There isn't much dialog outside of starting dialog) and feels completely emotionless. The characters are paper-thin and not very well developed, and that only contributes to my thinking that the entire story is only there to tie the 185 scenarios together. It feels ridiculous and sometimes made me wonder what I was doing with my life, after I read another dialog. The art of the campaign consists mostly of bad frankensteins or horribly drawn units, with the exceptions of the portraits for Efraim and Lethalia, which actually look pretty decent. Overall, I feel like the pretty good idea behind the RPG engine, which in my opinion is also poorly executed, has gone to waste by it being in this campaign. I think this campaign is bad and doesn't deserve any of the praise it often receives on the forums. I would not recommend this campaign to anyone.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 4&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 2&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 3&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 3&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 4&lt;br /&gt;
&lt;br /&gt;
'''Player note:''' 2&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
==== Review by taptap ====&lt;br /&gt;
&lt;br /&gt;
Panther Lord is one of my favourite campaigns and on higher difficulties one of the most challenging. Unlike many campaigns with an anticlimactic end (Northern Rebirth, Heir to the Throne etc.) it is unrelenting from start until the end (I suffered more than 140 casualties during its 14 scenarios). Velensk is a good player and it shows. &lt;br /&gt;
&lt;br /&gt;
This is the showcase campaign for the Era of Four Moons, while Salt Wars is a short and much easier introduction. The Era itself is well balanced, with many novel ideas and no elves. Admittedly, at first I shuddered at the idea of playing &amp;quot;half-naked wild with dark-coloured sprites&amp;quot; - I was quite troubled that it might be a collection of racist stereotypes, but playing with it, it certainly didn't feel so. (Much better indeed than the typical association of orcs in Tolkien-esque fantasy with mongols / turks.) There aren't only tribal Darklanders and Highlanders, but Sea States and Imperialists as well. Each of them plays very differently, none of them is depicted as timeless or &amp;quot;always chaotic evil&amp;quot;, even the Imperialists, the enemies in the campaign, get the opportunity to declare themselves. It certainly benefits from the background world (IALFA developed by the maintainer of the campaign) even if you only see a glimpse of it. &lt;br /&gt;
&lt;br /&gt;
The hero of the campaign is a mercenary outcast of his own Darklander civilization. When learning about plans to raze and colonize the jungles of his people by the imperialists he starts the quest to rescue his people. His friend the Panther spirit, to whom the campaign owes its name, always at his side, he is rallying troops and mercenaries around him, but soon he has to realize that change is inevitable. Changing their ways they may have hope to withstand or else they will be changed by force and subjugation. But how to convince his own people when he is an upstart at best, a traitor and spirit-friend at worst?&lt;br /&gt;
&lt;br /&gt;
While the campaign is centered around Darklanders, the player has the choice of hiring (and recalling) a limited amount of highly useful mercenaries of the other factions of the Era. The campaign features small scale to a few large scale battles and puts different territory to good use encouraging the use of mercenaries and different unit types. I omit the numbers, but this campaign is certainly recommended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Swamplings ===&lt;br /&gt;
==== Review by Dunno ====&lt;br /&gt;
'''Description:''' Swamplings is the name of goblin tribe living in swamps, banished by orcs. In an unfortunate turn of events, those goblins get tangled up in human affairs and must fight for their very survival. The player also learns how goblins started riding wolves.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' It's a decent, finished and stable campaign with interesting plot. There are many humorous scenes and some serious ones, there are standard battle scenarios and various original missions. There are also some high quality custom sprites, and maps are very good as well. It won't make your jaw drop, however, it's just a modest, enjoyable campaign.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 9&lt;br /&gt;
&lt;br /&gt;
==== Review by Pyrophorus ====&lt;br /&gt;
&lt;br /&gt;
'''Tags:''' goblins,skirmish,story&lt;br /&gt;
&lt;br /&gt;
'''Description:''' see previous review.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' This campaign is very original and imaginative. First of all, it features not chivalrous heroes like most Wesnoth campaigns, but humble and rather stubborn people instead. More of it, the story is much more picaresque than epic, written in a delicious humorous tone, very unusual in Wesnoth world. IMO, it's one of the few really good writing one can find here. It's impossible to abstract this complex story, where everything goes in an unexpected way, to list every strange encounter, funny event and so on. If you like good writing, humor, as well as hardcore fighting, you'll really love this campaign. If not, just as Dunno says, it's honest, no more.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Replay value:''' 7&lt;br /&gt;
&lt;br /&gt;
=== Talentless Mage ===&lt;br /&gt;
==== Review by Dunno ====&lt;br /&gt;
'''Description:''' A humorous story about a mage who managed to learn only one spell in his life and who takes command of N.O.O.B.S. (Noticeably - Optimal - Outstanding - Brilliant - Soldiers) squad. N.O.O.B.S. advance through amla with basic options like melee attack, melee damage etc. &lt;br /&gt;
&lt;br /&gt;
'''Summary:''' this here is Wesnoth parody at its best. The campaign mocks the common cliches in Wesnoth campaigns and overused events, like loyal units coming out of villages, random magical items scattered around the map and low quality frankensprites. Very absurd and pythonesque at times, you will keep smiling and laughing through the whole story.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 6&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 8&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 9&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Library of Kratemaqht ===&lt;br /&gt;
==== Review by Wesbane ====&lt;br /&gt;
The campaign is about genesis, course and outcome of civil war in empire of Anaktoron.&lt;br /&gt;
Surroundings:&lt;br /&gt;
The way campaign looks. How it feels and uses game engine is simply amazing and unseen before.&lt;br /&gt;
Maps are nicely done although many parts of a map serve for story (decorative) purpose only what is not always good. You will travel through wealthy and populous kingdom which is torn apart by war. To create this impression in most of maps there is a lot of villages and they are placed in large groups, but map look doesn't suffer from it. More over you can feel destruction in game world as never before. Campaign features custom burning houses which are not only mere visual effect but have impact on battle course.&lt;br /&gt;
It is one of most cinematic campaigns if not the most. Cutscenes are packed with action and take place in several locations. Also game transition fluently into cutscene and cutscene into game. What makes it even more interesting since you will never know is it just a cutscene?&lt;br /&gt;
In terms of visual effects it also features the best epilogue ever.&lt;br /&gt;
As it was not enough you can experience a true wesnoth dragon. It is so unusual that it need separate mention.&lt;br /&gt;
Dragon is fully animated and have some nice custom sounds. Some of it animations are purely character play. Like roar and feasting. And last, but not least it preserves original wesnoth dragon concepts. It attacks with fangs and tail. Although it primary weapon is ranged magical fire breath which works as AoE attack when used offensively. There is one little bug with its animation, but it can't be noticed during playing it anyway.&lt;br /&gt;
In short this campaign surely establish new standards for wesnoth in department of visuals.&lt;br /&gt;
Design:&lt;br /&gt;
Scenarios design is good. All levels are playable. Objectives are clearly formed, so it is known most of the time what to do. There are several minor bugs and one bigger that affects game to some degree. However they do not make impossible to play and enjoy campaign.&lt;br /&gt;
Campaign is using default units although sometimes with unusual traits and abilities. Custom units are also present, but only as much as they are needed. Which is a great thing since it proves designer skill at using available resources. Beside that I really can't stand campaigns introducing many user made units.&lt;br /&gt;
I liked much idea of premagic era and weakened magic users. Unfortunately any extra mages aren't useful since you have already better characters of this class. In fact after my recall list was cleaned up after Jevyans Return I never bothered to recruit them again.&lt;br /&gt;
Gold carryover system is custom which is not a good choice for classic style adventure. Twenty percent instead of forty. Most probably this is caused by slightly overpopulated maps. Campaign is very easy, except two scenarios: Refugees and Loyalty's Cruel Reward. There is no moderately difficult scenarios. The huge difference between average level difficulty and hardest level is just to big. Most difficult scenarios are Refugees and Loyaltys Cruel Reward.&lt;br /&gt;
Story:&lt;br /&gt;
Amount of delivered information is enough. Writing style is good. Beginning is terrific. Switching between protagonists is cool, and quite innovative idea. Overall concept is nicely executed and creator skillfully merged a lot of facts from mainline into own story. To fully appreciate this playing The Rise of Wesnoth is recommended. However ending I found disappointing. It seemed rushed and unconvincing. Also few details don't match to reality of Irdya.&lt;br /&gt;
Fun:&lt;br /&gt;
Campaign is definitely entertaining. Well done battles. Good dialog. And full of fresh ideas. You can play as good and bad in a single campaign! Although I have nothing against being awesome most of the time enemies fell way to easily to my taste.&lt;br /&gt;
Replay value:&lt;br /&gt;
Campaign is nicely done and straight forward. Although there is nothing that would reject you from playing it again, there is nothing that would encourage you to do that either. No hidden secrets, no tactical challenges, no extra levels. No satisfying ending.&lt;br /&gt;
&lt;br /&gt;
Summary:&lt;br /&gt;
Overall it is well made, really great, easy campaign suitable for beginners with story explaining some events from The Rise of Wesnoth. Bringing new standards in design, especially visual ones. It story is shown from several angles what is unique feature, but unfortunately potential of this solution wasn't used at all. If you are looking for deep plot, and tactical challenge you won't find it here.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings: 10&lt;br /&gt;
&lt;br /&gt;
'''Design: 6&lt;br /&gt;
&lt;br /&gt;
'''Story: 7&lt;br /&gt;
&lt;br /&gt;
'''Fun: 7&lt;br /&gt;
&lt;br /&gt;
'''Replay value: 5&lt;br /&gt;
&lt;br /&gt;
'''Campaign score: 7&lt;br /&gt;
&lt;br /&gt;
'''Player note: 8&lt;br /&gt;
&lt;br /&gt;
'''Link to review:''' [http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37798&amp;amp;start=45#p551674]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== To Lands Unknown ===&lt;br /&gt;
==== Review by Dunno ====&lt;br /&gt;
'''Description:''' This campaign tells about Mehir, a Summoner, who's working on a great quest of making the biggest magical circle ever made. If he and other summoners succeed, activating the circle will bring them to the Abyss, the lands unknown.&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' The main idea behind this campaign and the Era of Magic (used by To Lands Unknown) is to take Wesnoth graphics to an entirely new level. Maps are no longer simple, repetitive hexes, instead many maps are absolutely mindblowing landscapes. In addition, all units are well made and animated. The story and gameplay, however, could have been done better. The campaign is quite long, and at times battles get boring.&lt;br /&gt;
&lt;br /&gt;
'''Surroundings:''' 10&lt;br /&gt;
&lt;br /&gt;
'''Design:''' 7&lt;br /&gt;
&lt;br /&gt;
'''Story:''' 5&lt;br /&gt;
&lt;br /&gt;
'''Fun:''' 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Back to Guide to UMC Campaigns ==&lt;br /&gt;
* '''[http://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Campaigns Guide to UMC Campaigns]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Feedback Thread ==&lt;br /&gt;
If you have criticism, ideas and suggestions then please post it in the feedback thread.&lt;br /&gt;
&lt;br /&gt;
Or maybe you don't want, or don't know how to edit the wiki page, then you can post your review also here. I will add it then to this page.&lt;br /&gt;
* '''[http://forums.wesnoth.org/viewtopic.php?f=17&amp;amp;t=38946 Feedback Thread]'''&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51307</id>
		<title>Guide to UMC Content</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51307"/>
		<updated>2013-06-04T10:08:20Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Birth of a Lich */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a guide to the current (1.10.x/1.11.x) UMC campaigns for players. It aims to provide all the information not only about the story, but also about completion, difficulty and playing style of the campaign. See http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37476 for further information, for currently non-available UMC-content please refer to http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36733. Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
=== Blueprint ===&lt;br /&gt;
&lt;br /&gt;
'''Status:'''&lt;br /&gt;
* Broken = Does not work at all&lt;br /&gt;
* Incomplete = Partially written, no progress&lt;br /&gt;
* WIP = Partially written, progress&lt;br /&gt;
* Complete = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
* Finished = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
'''Length:'''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
Please note: Often campaigns introducing new mechanics are listed as expert level on the add-on server, here difficulty means the raw difficulty after the mechanics are understood.&lt;br /&gt;
&lt;br /&gt;
* Unbalanced = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erraticly from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
* Easy&lt;br /&gt;
* Normal&lt;br /&gt;
* Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones.&lt;br /&gt;
&lt;br /&gt;
* Skirmish = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
* Dungeon = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
* RPG = role playing game elements such as talking with non-player-characters, item collection, dependency on a party of very few adventurers without or limited recruits&lt;br /&gt;
* Survival = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
* Large Battle = large number of units on the battlefield, sizely maps&lt;br /&gt;
* Simulation = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
* Boss battle = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
* Minigames = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:'''&lt;br /&gt;
&lt;br /&gt;
* Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
'''Custom units:'''&lt;br /&gt;
&lt;br /&gt;
* Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
&lt;br /&gt;
* Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.10.x - stable ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.10.x stable version.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aldur The Great ===&lt;br /&gt;
&lt;br /&gt;
''This is a story about Aldur the Great.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' pintercsabi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, but unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Short unbalanced campaign, maybe abandoned. You fight with Peasants, Ruffians and Woodsman against Orcs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alfhelm the Wise ===&lt;br /&gt;
&lt;br /&gt;
''This is the tale of Alfhelm, called by some the Wise, son of Alfric Conqueror. This is the tale of his victories over his enemies, and his rise to power in the clans of Marauderdom. This is the tale of his journey south and his destruction of the Lavinian Empire. And this is the tale of his demise in the dark forests far to the east of his homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 gameplay scenarios &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Moderate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Marauders.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=17144&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Though this campaign is complete and playable the whole way through, the code is four years old and pretty buggy. If you notice any errors while playing, please let me know and I'll incorporate the fixes into my next revision as soon as possible.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A New Order ===&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished. &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 45 scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The old kingdom of Wesnoth has fallen before barbarian hordes. The occupying barbarians are on the brink of civil war, the seeds of Wesnothian rebellion are kept alive by old legends, while bandits and Khalifate mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?&lt;br /&gt;
Note: This campaign contains mature themes, some of which may be unsuitable for children.&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 1.2.15&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.10. In addition, you have to install Era Khalifate add-on; the Akladian Music package is optional&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Akladians, Khalifate&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Pyrophorus) Certainly one of the most mature and well designed campaign in add-ons. A must.&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
=== A Story of the Northlands ===&lt;br /&gt;
&lt;br /&gt;
''A story of life and death in a remote village of the Northlands. Your village has been overrun by an orcish raid. You fight for its freedom while you wait for help to arrive.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' zepko&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + additions: you play with a custom faction of outlaws and with a custom party of loyalist knights.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Story_of_the_Northlands/en_US/A_Story_of_the_Northlands.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Vision Blinded ===&lt;br /&gt;
&lt;br /&gt;
''Defend the northern forest against what appeared like a routine orcish raid, and unravel the greater conspiracies that lie below its waves.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' LemonTea&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' AxalaraFlame&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves (+ Trolls, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463&amp;amp;hilit=a+vision+blinded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bad Moon Rising ===&lt;br /&gt;
&lt;br /&gt;
''An expedition to gather treasure from the cold north sets off compounding disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Doofus-01&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Archaic Era&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.4.4.a&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Battle Against Time===&lt;br /&gt;
&lt;br /&gt;
''Rescue fellow orcish warchief before he is executed. (This is not a normal campaign. It is experiment with carryover system. You will start with defined number of turns and gold. You will only have that many turns to play through the whole campaign. There is no finish bonus and gold carryover is always 100%.)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenarios + 1 prologue scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Orcs&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27319&lt;br /&gt;
&lt;br /&gt;
=== Besieged Druids ===&lt;br /&gt;
&lt;br /&gt;
''A elvish school for druids comes under attack by goblins. It seems more than just a routine raid; is there something more sinister behind this attack? - In Beseiged Druids, you control Eärendil, the surviving teacher at the school, and the many and varied initiates. Not all of these are ordinary students; many have been experimenting with other forms of magic, while others are simply overachievers in some area of study. Unfortunately, they are not especially good at combat, at least initially. Together with a very small contingent of surviving guards, it is up to these students to save the island of Aleron from disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Celtic Minstrel&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/DruidSiege/en_US/celmin-druid-siege.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37342&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bitter Revenge===&lt;br /&gt;
&lt;br /&gt;
''Amidst the strife and turmoil of the first Dark Age of Wesnoth, a time of transient monarchies and conspiracies against the Crown, the boy Darith witnesses the murder of his father by a general of Wesnoth. Follow Darith's quest for retribution in this treacherous tale of betrayal, deceit, love, remorse, and vengeance.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (mostly outlaws and undead, custom units)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26699&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cities of the Frontier ===&lt;br /&gt;
&lt;br /&gt;
''Settle a new town in the wilds north of the Great River.''&lt;br /&gt;
	&lt;br /&gt;
''This campaign makes several changes to the standard Wesnoth game mechanics, and focuses on city-building and gold management.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' esci&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Not fixed, approximately 6-10 seasons of 36 turns each&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Simulation, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalist&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Cities_of_the_Frontier/en_US/Cities_of_the_Frontier.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36004&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Considerate Dead ===&lt;br /&gt;
&lt;br /&gt;
''As the wind goes on and on, people discover necromancer aren't always bad. Made by tribes45 - No scenarios are done, 4 playable out of ??.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' tribes45 aka tribes55&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete, unbalanced, abandoned&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' .009&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36522&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Count Kromire ===&lt;br /&gt;
&lt;br /&gt;
''You are the blood son of a vampire lord, however when the might of the celestial crusades comes knocking, and your father is slain, you flee your lands. However you intend to return, to restore the lands of Kromire to the Kromires, to avenge your father, and most importantly, to make sure that no celestial ever dares come into your mountains again.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' currently none&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Myths, Vampires&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=21560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Elvish Dynasty RPG ===&lt;br /&gt;
&lt;br /&gt;
''You are the new ruler of an elvish kingdom! Can you lead your people to glory? This campaign is highly randomized so it will be different every time you play!''&lt;br /&gt;
&lt;br /&gt;
''Sequel to Ooze Mini-Campaign''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' spencelack&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Wesbane&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 years, in each year choice between dialogue and fighting scenario (selected out of a large pool of possible scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9b&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=28627&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fall of Silvium ===&lt;br /&gt;
&lt;br /&gt;
''You are Caius Regilius, Tribune of the province of Silvia, located in the northmost reaches of the Lavinian Empire at the height of its power. But the Empire has overextended itself, The city of Silvium lies seperated from the rest of the Empire by the mountains of Arendia, and is sandwiched between the Marauders and the Sidhe... war is inevitable, and the province of Silvia will almost certainly fall.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Lavinian Legion.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24356&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The final level of this campaign is not supposed to be winnable. It's a final blaze of glory and chance to use all your high-powered units, but to 'win' the campaign, you must lose...the ending is similar to a certain mainline campaign, but predates it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fate of a Princess ===&lt;br /&gt;
&lt;br /&gt;
''Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the king's justice. The baron's deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.''&lt;br /&gt;
&lt;br /&gt;
''Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldres' daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne, mich, simonsmith&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26-29 scenarios (some dialogue-only), 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play two different, unique cross-faction combinations in each part.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Fate_of_a_Princess/en_US/Fate_of_a_Princess.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.17&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.12 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26327&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Fate_of_a_princess Players Review]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forgotten Kingdom ===&lt;br /&gt;
&lt;br /&gt;
''Help Orlog, a troll chieftan, lead his people to safety in the underground and discover an ancient power long forgotten.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Limabean&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chrysophylax&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete ( but all scenarios playable and balanced )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Goblins, Trolls&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Forgotten_Kingdom/en_US/Forgotten_Kingdom.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23483&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) This campaign includes a custom Troll line. A good campaign, I hope Limabean and/or Chrysophylax will finish it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forward they Cried ===&lt;br /&gt;
&lt;br /&gt;
''You are the leader of an advanced detachment that has been tasked with capturing a bridgehead while the main army prepares to attack. It should be a simple enough assignment.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Glowing Fish&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lord-Knightmare &lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 scenario ( rather a single scenario than a campaign )&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23656&amp;amp;p=350126&amp;amp;hilit=forward+they+cried#p350126&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Only a single scenario, but a great scenario.&lt;br /&gt;
(UnwiseOwl) You wouldn't want to stop thinking for a turn, and it's good for the first few turns, but this one leaves me wanting more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Galuldur's First Journey ===&lt;br /&gt;
&lt;br /&gt;
''While the belligerence of orcs is nothing new, their intensifying attacks on a fledgling colony of elves in Pindir Forest begin to show signs of a deeper malice, forcing Galuldur, the young son of the colony's adventurous founder Galur, to venture out of his forest's friendly trees in search of help. His simple errand quickly turns into a frantic quest to unearth the roots of the mysterious evil threatening his people. As you lead him through unknown lands, Galuldur, forced to match wits with unexpected adversaries at nearly every turn in a desperate attempt to save his world, quickly learns that the world is neither a friendly nor a simple place.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8-9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Galuldur/en_US/Galuldur.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31895&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Grnk the Mighty ===&lt;br /&gt;
&lt;br /&gt;
''All his life, puny little goblin Grnk the Frail had been dreaming about leaving the orcs and starting a better life.  When he finally arrives in the human town of Shmaltupp, he realizes that the world is not as black and white as he had imagined.  He also discovers that he is no ordinary goblin.  Follow Grnk the Frail on his path to becoming Grnk the Mighty.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Part I complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, changing (no standard army building gameplay)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Grnk/en_US/Grnk.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.5 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34970&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
&lt;br /&gt;
''Episode I - Seeking the Light: Long after the Fall, the last forest elves are forced to abandon their safe valley, and find themselves resorting to the dark means of necromancy in order to survive the perils and challenges of this new harsh world. May they finally free the Great Continent from its chaos, or perish in the foolish attempt of restoring peace and life to the lands.''&lt;br /&gt;
&lt;br /&gt;
''Episode II - Armageddon: As the shadow of Chaos covers the entire continent, an assorted group of foolish heroes prepares a counter-attack to the Empire, with one unique goal in their minds: defeat the evil Emperor, whoever it is. Lead these courageous living and non-living warriors to victory, and rediscover lost secrets of the history.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' shadowmaster &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Espreon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios in two episodes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Boss battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Unique. You play Elves and Undead throughout the campaign + in the 2nd part Northerners and Aragwaithi.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.90.6&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (taptap) Despite its acknowledged flaws (generic hero, plot holes, deus ex machina moments, gameplay issues in the 2nd part) this is undoubtedly the most iconic campaign in UMC. It single-handedly redefines the elvish history and sketches a cosmology for the ages after the fall. With the Chaos empire and its various allies it introduces an era worth of factions to single-player play. At the same time it features some of the most beautiful maps in Wesnoth and stunning art on par with mainline campaigns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion of Eliador ===&lt;br /&gt;
&lt;br /&gt;
''A peaceful island is about to be invaded by unknadd-ons foes travelling towards the eastern shore. It is up to a family of outlaws to warn the island's inhabitants before it's too late.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Sam M. (Genosuke)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios + epilogue&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6556&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Invasion_of_Eliador]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Langrisser Sample Campaign ===&lt;br /&gt;
&lt;br /&gt;
''The Imperial Knights of the Rayguard Empire have disrupted the peace of the village that was Hein's hometown, seeking only a girl named Liana. Fight to rescue Liana.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Morath&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36417&amp;amp;hilit=Langrisser&lt;br /&gt;
&lt;br /&gt;
'''Wikipedia:''' [http://en.wikipedia.org/wiki/Langrisser What is Langrisser]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Single scenario, different from usual Wesnoth behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nothwards ===&lt;br /&gt;
&lt;br /&gt;
''A lone keep in frosty woods against enemies from far beyond.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DeRaid&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken (Does not work at all)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 0 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Style:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Does not work at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
&lt;br /&gt;
''The Imperialists ambitions of pushing into the Sea States have been repeatedly thwarted and now they turn their attentions elsewhere. You are an outcast Darklander now living as a mercenary in the Sea States and the rumors you hear indicate that they will be coming to your people. Though an outcast you do not wish to see them subjugated. The spirit whose friendship caused you to be an outcast has a plan that might allow you to save them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Darklanders (+ a wide variety of mercenaries)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34318&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return of the Monster ===&lt;br /&gt;
&lt;br /&gt;
''It was time for Amailoss, born from the naga queen's last egg, to leave home. Time for him to grow into a leader in his own right, and eventually become the guardian and leader of another naga city. But along the way, he became friends with an unusual mud-crawler, they met a strange young monster, discovered that a spirit had escaped from an orc prison, and the mystery of that spirit became a grave challenge for Amailoss and the many races in the region....''&lt;br /&gt;
&lt;br /&gt;
''A naga campaign, involving elves, orcs, saurians, turtle-like races, and some monsters.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable, 2 dialog scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play a custom naga faction and carapaces (a turtle-like race).&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Return_of_the_Monster/en_US/Return_of_the_Monster.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36438&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Noelren ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios + 7 cut scenes&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pyrophorus&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''A story in the first Dark Age of Wesnoth. See how various heroes stick together to shun the threat of black magics, restore the secret kingdom of Noelren and install Garard I on the throne of Wesnoth. This campaign features complex scenarios, unusual objectives and units, emphasizing more on story and adventures than hardcore fighting.''&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 0.7.6&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' BfW 1.10 (not tested on 1.11)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy, unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Large Battle, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + custom units&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/ReturnToNoelren/en_US/ReturnToNoelren.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34685#p501026&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) I never saw so much fantastic and new ideas in one single UMC, wow!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Ruins ===&lt;br /&gt;
&lt;br /&gt;
''The humble farmers of Vertegris are summoned by Erik the General of Weldyn to put an end to an orcish raiding party. If they knew what would befall their former home... They never would have left. This is a relatively short campaign with 8 scenarios, It is still undergoing changes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Jeff Stevens (Ulfsark)&lt;br /&gt;
&lt;br /&gt;
'''Composer:''' Paul Fredericks (paulfredericksmusic.com)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy,Normal,Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default,(Loyalists, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x &lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37790&amp;amp;sid=9059f18497cda1219f42a626544d0ffd&amp;amp;p=540646#p540646&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) You play a short campaign with just a few units. Playable in a few hours, nevertheless it is fun to play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Salt Wars ===&lt;br /&gt;
&lt;br /&gt;
''Introductory campaign for the Era of Four Moons.''&lt;br /&gt;
&lt;br /&gt;
''As an officer of one of the Sea States you must defend your organization from aggressive rivals.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Sea States&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31498&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Saving Elensefar ===&lt;br /&gt;
&lt;br /&gt;
''Meneldur, elvish mariner of Elensefar, is driven to sea by the same orcs who attacked the city. He must gather an army willing to fight for him to regain Elensefar, his adopted homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 year (around 12 scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.2&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default Era&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?t=3072&amp;amp;start=0&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[SeafaringCampaign]]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Labeled as Expert, recruit list changes in all scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shameless Crossover Excuse ===&lt;br /&gt;
&lt;br /&gt;
''Fugitive dark sorcerer Gwiti Ha'atel discovers he has the power to mess with Wesnoth's continuity. His quest for revenge on the NPCs who have used his portraits will lead him through perils untold and in-jokes unnumbered, but shall pale before the horror he finds at his quest's end.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orcish Shyde, Mountain_King&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Undead&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32016&amp;amp;start=15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Swamplings ===&lt;br /&gt;
&lt;br /&gt;
''Banished by Yushnak the Ponderer, a tribe of lowly swamp goblins endure in the deadly mire of Pogo Bog. Four centuries before the founding of Wesnoth, this is the story of the goblins' struggle against the intrigues and betrayals of the greater races, and the rise of the first wolf rider.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' John Rawlins (boru)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.7n&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29784&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Swamplings Players Review]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Talentless Mage===&lt;br /&gt;
&lt;br /&gt;
''Humorous and silly campaign about mage apprentice who has managed to learn only one simple spell in thirty years.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 3 dialogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Noob Faction&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27608]&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Campaigns/Players_Reviews&amp;amp;action=submit#Talentless_Mage Player's review]&lt;br /&gt;
&lt;br /&gt;
=== The Dark Alliance===&lt;br /&gt;
&lt;br /&gt;
''Prince Terhar lived two years with elves. Little did he expect what would happen when he returned back to Weldyn.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 or 10 playable scenarios depending on the branch you take (+ 5 dialogue scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Recruit list changes in almost every scenario&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26924&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Dark Hordes ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11/?&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[TheDarkHordes]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [[http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Devil's Flute ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, unmaintained&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Author:''' lipk&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Creona, the well-known assassin, gets a strange job from a strange person. So, in fact, it's no surprise that things take a strange turn...&lt;br /&gt;
&lt;br /&gt;
'''Version:'''  0.1.4c&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Outlaws&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36044&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Earth's Gut ===&lt;br /&gt;
&lt;br /&gt;
''The year is 515YW. You are the young dwarven leader Hamel. Your tribe in the caves of Knalga is under pressure from its enemies, and resources are growing scarce. In order to forge the weapons required to resist your enemies, you must set forth and collect what ores and minerals remain.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 21 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, dwarves.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Earths_Gut/en_US/the_earths_gut.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.11&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This campaign is a &amp;quot;Dwarvish dungeon crawler&amp;quot; and is intended to be challenging for experienced players on hard whilst suitably easy on easy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Epic of Vaniyera ===&lt;br /&gt;
&lt;br /&gt;
''The expansionist Lavinian Legion, led by the Imperator himself, has invaded the northern forests of the Sidhe, or Wild Elves. It is up to Leithan the Thunderblade and his advisor Vaniyera to push its armies back where they came from...''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  oreb, turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 6 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard (Don't be fooled by &amp;quot;novice level&amp;quot; in the campaign description, this one is very hard.) &lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Working on this issue, the next release (due at the end of November, hah!) should bring easy difficulty back to the level of a reasonable introduction to the IE, while the hard difficulty will also become slightly easier. With any luck, this will be the last release before version 1.0 of the campaign].&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19490&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Fall of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
''As the beloved human empire of Wesnoth becomes lazy and arrogant in its peaceful state of happiness, Emperor Dantair demands the creation of another sun in a bid to destroy all evil. Or is it all for a different purpose? A man named Alitar sees it that way, and now he must survive the most evil inhabited lands if he is to stop chaos from rising, and Wesnoth from falling... This is the story of The Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pewskeepski&lt;br /&gt;
&lt;br /&gt;
'''Status:''' 1st part complete, 2nd WIP.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Outlaws&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Fall_of_Wesnoth/en_US/The_Fall_of_Wesnoth-1.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Founding of Borstep ===&lt;br /&gt;
&lt;br /&gt;
''The chieftain of your tribe has become decadent and weak. Take over, and lead your people to a better home--whether it is already occupied or not. The Northlands in year 9W are a barbaric place, but anyone who stands in your way will learn the power of orcs!''	&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 and 1 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Northerners&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Founding_of_Borstep/en_US/The_Founding_of_Borstep.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1b&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Kanzil) I find the protagonist hard to sympathise with. Also, most scenarios contain interesting twists. For example, in one, each time you killed a boar it gives you extra health.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (beetlenaut--author) In most Orcish campaigns the leader is heroic or just wants peace. Krag-Ubor wants plunder and battle like all enemy Orcs in other campaigns. I '''hope''' you don't sympathize too strongly, but I don't think you need to in order to enjoy the game play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Keep ===&lt;br /&gt;
&lt;br /&gt;
''A lone keep in frosty woods against enemies from far beyond.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DeRaid&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken (Does not work at all)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 0 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Broken&lt;br /&gt;
&lt;br /&gt;
'''Style:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Does not work at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Library of Kratemaqht ===&lt;br /&gt;
&lt;br /&gt;
''An ancient story from the old continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Rich Marinaccio (cephalo)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced (some scenarios are Easy - some rather Hard) &lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists and custom units.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Library_Of_Kratemaqht/en_US/The_Library_Of_Kratemaqht.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37798&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#The_Library_of_Kratemaqht Players Reviews]&lt;br /&gt;
&lt;br /&gt;
'''Notes:''' (Adamant14) This campaign has a thought-out story, shows a great love for detail;&lt;br /&gt;
It includes a great custom Dragon, some brilliant custom images (fire, burning houses, burning forest) that makes the scenery / maps look very nice.&lt;br /&gt;
&lt;br /&gt;
=== The Roar of the Woses ===&lt;br /&gt;
&lt;br /&gt;
''When the construction of a dam threatens the existence of her home, Kylix is forced on a journey to stop it.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Alarantalara&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10-11 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with Additions (primarily Saurians, Nagas, Woses)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29830&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (author) Potentially unbalanced on Hard difficulty due to experiments with non-standard ways to increase difficulty. This issue does not exist on the lower difficulty levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Three Elves ===&lt;br /&gt;
&lt;br /&gt;
''Three elves have just begun their adventure in the northern swampland. Will they become heroes or will they be responsible for another undead expansion?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Stanislav Hoferek&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios + 2 dialogue&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (Elves)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' (does it have one?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Sojournings of Grog ===&lt;br /&gt;
&lt;br /&gt;
''Grog (as starred in Under the Burning Suns) goes home.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Peter Christopher, Thomas Hockings &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Elvish_Hunter&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios in 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Sojournings_of_Grog/en_US/The_Sojournings_of_Grog.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default. Most of the time you play trolls and some desert elves accompanying Grog.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 3.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Unstoppable Legion ===&lt;br /&gt;
&lt;br /&gt;
''Horseback campaign. The kingdom of Suveran, far away from Wesnoth, is under attack. Only Deuterus, a Great Druid, knows their weakness and only Viktor, a young noble, dares go on the quest to stop them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Currently 15 playable sceanrios, including a fork of three paths near the beginning, and another fork of two paths later on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mainly Skirmish&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Unstoppable_Legion/en_US/The_Unstoppable_Legion.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Play mounted units, including expanded Cavalryman line, and completely new Bowrider line. Joined later by Dwarves. Main enemies are the dark fighters and dark cultists.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.8.7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The White Troll ===&lt;br /&gt;
&lt;br /&gt;
''The story of a white troll whelp with strange magic powers, who is raised in an elvish village.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wesnoth Italian Forum&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: you play with elves and trolls. Also features custom units with special advancements and abilities.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/White_Troll/en_US/white_troll.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38828&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== To Lands Unknown ===&lt;br /&gt;
&lt;br /&gt;
''This is the story of Mehir, the Summoner, and his journey to lands unknown.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios, 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate (Era of Magic)&lt;br /&gt;
&lt;br /&gt;
'''Style''': Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Era:''' Era of Magic&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown Players Review]&lt;br /&gt;
&lt;br /&gt;
=== Unlikely Alliance ===&lt;br /&gt;
&lt;br /&gt;
''Play as the members of an alliance between the elves, drakes, and undead after the Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Creativity&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken ( Abandoned )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 broken scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' -&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' -&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Did not work at all. Seems abandoned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Up from Slavery ===&lt;br /&gt;
&lt;br /&gt;
''The Orcei are captives in the imperial city of Lavinium, gladiators performing for the emperor Optus Maximus. All it will take, however, is one orc to lead his people to freedom. The Samnis called Sparxus may be that orc.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Arena (= No recruit, small group gladiator fights)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Orcei Gladiatores&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) At some point, I am intending to completely re-work this campaign to be a multi-player campaign, with one side led by Sparxus and one by Gravirivus. If anyone would like to take this on or has ideas for how to accomplish this, let us know. Nevertheless, its playable as a single player campaign now with some nice ideas that could be developed further.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warmaster ===&lt;br /&gt;
&lt;br /&gt;
''One day the scout of your king brings a mysterious little stone, called Zrai-Stone, back from one of his trips. Soon that stone causes a lot of trouble...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Conkinator&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.5&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 battle + 2 bonus + 1 epilogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (loyalists)&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=15527&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Way of Dragon ===&lt;br /&gt;
&lt;br /&gt;
''The story of what might happen if a person against his will transform into a dragon...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DrakeDragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish/RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37876 Wesnoth Forum]    [http://uporoom.ru/index.php/topic,179.0.html Russian Forum]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Promising short campaign, you play with just a few units.&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.11.x - development ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.11.x development version.''&lt;br /&gt;
&lt;br /&gt;
''Please note: Battle for Wesnoth 1.11.0 features a bug that messes up the selection of difficulty levels.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) The campaign did not work with BfW version 1.11.0, or BfW version 1.11.1, so please use BfW version 1.11.2 or later!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Song of Fire ===&lt;br /&gt;
&lt;br /&gt;
''''''Part I: The Last War''' - In a long-forgotten era, at the heart of the Great Continent, an ancestral evil is awakened, threatening to destroy the whole world. Follow young Myra in the war that will alter the future of Irdya and its peoples forever.''&lt;br /&gt;
&lt;br /&gt;
''''''Part II: Towards the Rising Sun''' - After the vicious Last War, Myra has become the new leader of Aragwaithi and Windsong alike. Albeit young and shaken by many losses, she must steel herself to lead her people through the vast and hostile Hannuk Steppes. However, her journey will take them all farther than in their wildest dreams. Furthermore, Myra must deal with the evil influence of the mysterious red gem she found after the last battle.''&lt;br /&gt;
&lt;br /&gt;
''''''Part III: Raging Skies''' - The refugees have finally found a new home: families are built, allies are made and, for the first time in years, Myra and her friends know peace. However, when everything seems normal, ambition and thirst for power cause the break out of a continental war. And, amidst this new storm, an old foe rises agan, more powerful than ever. Witness the end of the song of Irdya's first great heroine.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 36 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default+War of Legends&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.3.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bad Moon Rising ===&lt;br /&gt;
&lt;br /&gt;
''An expedition to gather treasure from the cold north sets off compounding disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Doofus-01&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Archaic Era&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.8&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
=== Coming of the Storm ===&lt;br /&gt;
&lt;br /&gt;
''A new recruit joins the imperial army, eager to change the world and see combat. Little does he realise just how much action he will get and where his journey will take him. ''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' TrashMan&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 playable scenarios / 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23361&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruthless ===&lt;br /&gt;
&lt;br /&gt;
''A bard (an aging criminal) is walking in wasteland. Nothing but two hands in his pockets, and nothing but stones around. Suddenly he sees a knight on errand--a dangerous opponent, especially in broad daylight. The two strangers are soon sitting by the campfire, and the bard is telling a story.&lt;br /&gt;
(Beginner level, 10+ fights).''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' homunculus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios + 5 cutscene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal &lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (Orcs)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37874&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Recommendable campaign, with smart unusual ideas and a good detailed story.&lt;br /&gt;
You fight with few units on small but perfect maps. About the difficulty: The author describes his campaign as 'beginner level', but for me the difficulty is rather NORMAL than EASY.&lt;br /&gt;
&lt;br /&gt;
== Player Reviews ==&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews Link to Players Reviews]'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51306</id>
		<title>Guide to UMC Content</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51306"/>
		<updated>2013-06-04T10:06:49Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Battle Against Time */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a guide to the current (1.10.x/1.11.x) UMC campaigns for players. It aims to provide all the information not only about the story, but also about completion, difficulty and playing style of the campaign. See http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37476 for further information, for currently non-available UMC-content please refer to http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36733. Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
=== Blueprint ===&lt;br /&gt;
&lt;br /&gt;
'''Status:'''&lt;br /&gt;
* Broken = Does not work at all&lt;br /&gt;
* Incomplete = Partially written, no progress&lt;br /&gt;
* WIP = Partially written, progress&lt;br /&gt;
* Complete = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
* Finished = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
'''Length:'''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
Please note: Often campaigns introducing new mechanics are listed as expert level on the add-on server, here difficulty means the raw difficulty after the mechanics are understood.&lt;br /&gt;
&lt;br /&gt;
* Unbalanced = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erraticly from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
* Easy&lt;br /&gt;
* Normal&lt;br /&gt;
* Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones.&lt;br /&gt;
&lt;br /&gt;
* Skirmish = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
* Dungeon = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
* RPG = role playing game elements such as talking with non-player-characters, item collection, dependency on a party of very few adventurers without or limited recruits&lt;br /&gt;
* Survival = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
* Large Battle = large number of units on the battlefield, sizely maps&lt;br /&gt;
* Simulation = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
* Boss battle = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
* Minigames = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:'''&lt;br /&gt;
&lt;br /&gt;
* Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
'''Custom units:'''&lt;br /&gt;
&lt;br /&gt;
* Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
&lt;br /&gt;
* Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.10.x - stable ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.10.x stable version.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aldur The Great ===&lt;br /&gt;
&lt;br /&gt;
''This is a story about Aldur the Great.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' pintercsabi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, but unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Short unbalanced campaign, maybe abandoned. You fight with Peasants, Ruffians and Woodsman against Orcs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alfhelm the Wise ===&lt;br /&gt;
&lt;br /&gt;
''This is the tale of Alfhelm, called by some the Wise, son of Alfric Conqueror. This is the tale of his victories over his enemies, and his rise to power in the clans of Marauderdom. This is the tale of his journey south and his destruction of the Lavinian Empire. And this is the tale of his demise in the dark forests far to the east of his homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 gameplay scenarios &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Moderate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Marauders.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=17144&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Though this campaign is complete and playable the whole way through, the code is four years old and pretty buggy. If you notice any errors while playing, please let me know and I'll incorporate the fixes into my next revision as soon as possible.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A New Order ===&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished. &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 45 scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The old kingdom of Wesnoth has fallen before barbarian hordes. The occupying barbarians are on the brink of civil war, the seeds of Wesnothian rebellion are kept alive by old legends, while bandits and Khalifate mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?&lt;br /&gt;
Note: This campaign contains mature themes, some of which may be unsuitable for children.&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 1.2.15&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.10. In addition, you have to install Era Khalifate add-on; the Akladian Music package is optional&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Akladians, Khalifate&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Pyrophorus) Certainly one of the most mature and well designed campaign in add-ons. A must.&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
=== A Story of the Northlands ===&lt;br /&gt;
&lt;br /&gt;
''A story of life and death in a remote village of the Northlands. Your village has been overrun by an orcish raid. You fight for its freedom while you wait for help to arrive.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' zepko&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + additions: you play with a custom faction of outlaws and with a custom party of loyalist knights.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Story_of_the_Northlands/en_US/A_Story_of_the_Northlands.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Vision Blinded ===&lt;br /&gt;
&lt;br /&gt;
''Defend the northern forest against what appeared like a routine orcish raid, and unravel the greater conspiracies that lie below its waves.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' LemonTea&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' AxalaraFlame&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves (+ Trolls, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463&amp;amp;hilit=a+vision+blinded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bad Moon Rising ===&lt;br /&gt;
&lt;br /&gt;
''An expedition to gather treasure from the cold north sets off compounding disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Doofus-01&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Archaic Era&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.4.4.a&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Battle Against Time===&lt;br /&gt;
&lt;br /&gt;
''Rescue fellow orcish warchief before he is executed. (This is not a normal campaign. It is experiment with carryover system. You will start with defined number of turns and gold. You will only have that many turns to play through the whole campaign. There is no finish bonus and gold carryover is always 100%.)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenarios + 1 prologue scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Orcs&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27319&lt;br /&gt;
&lt;br /&gt;
=== Besieged Druids ===&lt;br /&gt;
&lt;br /&gt;
''A elvish school for druids comes under attack by goblins. It seems more than just a routine raid; is there something more sinister behind this attack? - In Beseiged Druids, you control Eärendil, the surviving teacher at the school, and the many and varied initiates. Not all of these are ordinary students; many have been experimenting with other forms of magic, while others are simply overachievers in some area of study. Unfortunately, they are not especially good at combat, at least initially. Together with a very small contingent of surviving guards, it is up to these students to save the island of Aleron from disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Celtic Minstrel&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/DruidSiege/en_US/celmin-druid-siege.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37342&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bitter Revenge===&lt;br /&gt;
&lt;br /&gt;
''Amidst the strife and turmoil of the first Dark Age of Wesnoth, a time of transient monarchies and conspiracies against the Crown, the boy Darith witnesses the murder of his father by a general of Wesnoth. Follow Darith's quest for retribution in this treacherous tale of betrayal, deceit, love, remorse, and vengeance.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (mostly outlaws and undead, custom units)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26699&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cities of the Frontier ===&lt;br /&gt;
&lt;br /&gt;
''Settle a new town in the wilds north of the Great River.''&lt;br /&gt;
	&lt;br /&gt;
''This campaign makes several changes to the standard Wesnoth game mechanics, and focuses on city-building and gold management.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' esci&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Not fixed, approximately 6-10 seasons of 36 turns each&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Simulation, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalist&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Cities_of_the_Frontier/en_US/Cities_of_the_Frontier.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36004&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Considerate Dead ===&lt;br /&gt;
&lt;br /&gt;
''As the wind goes on and on, people discover necromancer aren't always bad. Made by tribes45 - No scenarios are done, 4 playable out of ??.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' tribes45 aka tribes55&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete, unbalanced, abandoned&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' .009&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36522&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Count Kromire ===&lt;br /&gt;
&lt;br /&gt;
''You are the blood son of a vampire lord, however when the might of the celestial crusades comes knocking, and your father is slain, you flee your lands. However you intend to return, to restore the lands of Kromire to the Kromires, to avenge your father, and most importantly, to make sure that no celestial ever dares come into your mountains again.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' currently none&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Myths, Vampires&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=21560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Elvish Dynasty RPG ===&lt;br /&gt;
&lt;br /&gt;
''You are the new ruler of an elvish kingdom! Can you lead your people to glory? This campaign is highly randomized so it will be different every time you play!''&lt;br /&gt;
&lt;br /&gt;
''Sequel to Ooze Mini-Campaign''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' spencelack&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Wesbane&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 years, in each year choice between dialogue and fighting scenario (selected out of a large pool of possible scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9b&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=28627&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fall of Silvium ===&lt;br /&gt;
&lt;br /&gt;
''You are Caius Regilius, Tribune of the province of Silvia, located in the northmost reaches of the Lavinian Empire at the height of its power. But the Empire has overextended itself, The city of Silvium lies seperated from the rest of the Empire by the mountains of Arendia, and is sandwiched between the Marauders and the Sidhe... war is inevitable, and the province of Silvia will almost certainly fall.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Lavinian Legion.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24356&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The final level of this campaign is not supposed to be winnable. It's a final blaze of glory and chance to use all your high-powered units, but to 'win' the campaign, you must lose...the ending is similar to a certain mainline campaign, but predates it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fate of a Princess ===&lt;br /&gt;
&lt;br /&gt;
''Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the king's justice. The baron's deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.''&lt;br /&gt;
&lt;br /&gt;
''Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldres' daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne, mich, simonsmith&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26-29 scenarios (some dialogue-only), 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play two different, unique cross-faction combinations in each part.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Fate_of_a_Princess/en_US/Fate_of_a_Princess.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.17&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.12 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26327&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Fate_of_a_princess Players Review]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forgotten Kingdom ===&lt;br /&gt;
&lt;br /&gt;
''Help Orlog, a troll chieftan, lead his people to safety in the underground and discover an ancient power long forgotten.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Limabean&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chrysophylax&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete ( but all scenarios playable and balanced )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Goblins, Trolls&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Forgotten_Kingdom/en_US/Forgotten_Kingdom.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23483&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) This campaign includes a custom Troll line. A good campaign, I hope Limabean and/or Chrysophylax will finish it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forward they Cried ===&lt;br /&gt;
&lt;br /&gt;
''You are the leader of an advanced detachment that has been tasked with capturing a bridgehead while the main army prepares to attack. It should be a simple enough assignment.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Glowing Fish&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lord-Knightmare &lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 scenario ( rather a single scenario than a campaign )&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23656&amp;amp;p=350126&amp;amp;hilit=forward+they+cried#p350126&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Only a single scenario, but a great scenario.&lt;br /&gt;
(UnwiseOwl) You wouldn't want to stop thinking for a turn, and it's good for the first few turns, but this one leaves me wanting more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Galuldur's First Journey ===&lt;br /&gt;
&lt;br /&gt;
''While the belligerence of orcs is nothing new, their intensifying attacks on a fledgling colony of elves in Pindir Forest begin to show signs of a deeper malice, forcing Galuldur, the young son of the colony's adventurous founder Galur, to venture out of his forest's friendly trees in search of help. His simple errand quickly turns into a frantic quest to unearth the roots of the mysterious evil threatening his people. As you lead him through unknown lands, Galuldur, forced to match wits with unexpected adversaries at nearly every turn in a desperate attempt to save his world, quickly learns that the world is neither a friendly nor a simple place.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8-9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Galuldur/en_US/Galuldur.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31895&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Grnk the Mighty ===&lt;br /&gt;
&lt;br /&gt;
''All his life, puny little goblin Grnk the Frail had been dreaming about leaving the orcs and starting a better life.  When he finally arrives in the human town of Shmaltupp, he realizes that the world is not as black and white as he had imagined.  He also discovers that he is no ordinary goblin.  Follow Grnk the Frail on his path to becoming Grnk the Mighty.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Part I complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, changing (no standard army building gameplay)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Grnk/en_US/Grnk.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.5 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34970&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
&lt;br /&gt;
''Episode I - Seeking the Light: Long after the Fall, the last forest elves are forced to abandon their safe valley, and find themselves resorting to the dark means of necromancy in order to survive the perils and challenges of this new harsh world. May they finally free the Great Continent from its chaos, or perish in the foolish attempt of restoring peace and life to the lands.''&lt;br /&gt;
&lt;br /&gt;
''Episode II - Armageddon: As the shadow of Chaos covers the entire continent, an assorted group of foolish heroes prepares a counter-attack to the Empire, with one unique goal in their minds: defeat the evil Emperor, whoever it is. Lead these courageous living and non-living warriors to victory, and rediscover lost secrets of the history.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' shadowmaster &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Espreon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios in two episodes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Boss battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Unique. You play Elves and Undead throughout the campaign + in the 2nd part Northerners and Aragwaithi.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.90.6&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (taptap) Despite its acknowledged flaws (generic hero, plot holes, deus ex machina moments, gameplay issues in the 2nd part) this is undoubtedly the most iconic campaign in UMC. It single-handedly redefines the elvish history and sketches a cosmology for the ages after the fall. With the Chaos empire and its various allies it introduces an era worth of factions to single-player play. At the same time it features some of the most beautiful maps in Wesnoth and stunning art on par with mainline campaigns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion of Eliador ===&lt;br /&gt;
&lt;br /&gt;
''A peaceful island is about to be invaded by unknadd-ons foes travelling towards the eastern shore. It is up to a family of outlaws to warn the island's inhabitants before it's too late.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Sam M. (Genosuke)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios + epilogue&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6556&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Invasion_of_Eliador]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Langrisser Sample Campaign ===&lt;br /&gt;
&lt;br /&gt;
''The Imperial Knights of the Rayguard Empire have disrupted the peace of the village that was Hein's hometown, seeking only a girl named Liana. Fight to rescue Liana.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Morath&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36417&amp;amp;hilit=Langrisser&lt;br /&gt;
&lt;br /&gt;
'''Wikipedia:''' [http://en.wikipedia.org/wiki/Langrisser What is Langrisser]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Single scenario, different from usual Wesnoth behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nothwards ===&lt;br /&gt;
&lt;br /&gt;
''A lone keep in frosty woods against enemies from far beyond.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DeRaid&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken (Does not work at all)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 0 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Style:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Does not work at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
&lt;br /&gt;
''The Imperialists ambitions of pushing into the Sea States have been repeatedly thwarted and now they turn their attentions elsewhere. You are an outcast Darklander now living as a mercenary in the Sea States and the rumors you hear indicate that they will be coming to your people. Though an outcast you do not wish to see them subjugated. The spirit whose friendship caused you to be an outcast has a plan that might allow you to save them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Darklanders (+ a wide variety of mercenaries)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34318&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return of the Monster ===&lt;br /&gt;
&lt;br /&gt;
''It was time for Amailoss, born from the naga queen's last egg, to leave home. Time for him to grow into a leader in his own right, and eventually become the guardian and leader of another naga city. But along the way, he became friends with an unusual mud-crawler, they met a strange young monster, discovered that a spirit had escaped from an orc prison, and the mystery of that spirit became a grave challenge for Amailoss and the many races in the region....''&lt;br /&gt;
&lt;br /&gt;
''A naga campaign, involving elves, orcs, saurians, turtle-like races, and some monsters.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable, 2 dialog scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play a custom naga faction and carapaces (a turtle-like race).&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Return_of_the_Monster/en_US/Return_of_the_Monster.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36438&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Noelren ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios + 7 cut scenes&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pyrophorus&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''A story in the first Dark Age of Wesnoth. See how various heroes stick together to shun the threat of black magics, restore the secret kingdom of Noelren and install Garard I on the throne of Wesnoth. This campaign features complex scenarios, unusual objectives and units, emphasizing more on story and adventures than hardcore fighting.''&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 0.7.6&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' BfW 1.10 (not tested on 1.11)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy, unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Large Battle, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + custom units&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/ReturnToNoelren/en_US/ReturnToNoelren.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34685#p501026&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) I never saw so much fantastic and new ideas in one single UMC, wow!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Ruins ===&lt;br /&gt;
&lt;br /&gt;
''The humble farmers of Vertegris are summoned by Erik the General of Weldyn to put an end to an orcish raiding party. If they knew what would befall their former home... They never would have left. This is a relatively short campaign with 8 scenarios, It is still undergoing changes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Jeff Stevens (Ulfsark)&lt;br /&gt;
&lt;br /&gt;
'''Composer:''' Paul Fredericks (paulfredericksmusic.com)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy,Normal,Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default,(Loyalists, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x &lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37790&amp;amp;sid=9059f18497cda1219f42a626544d0ffd&amp;amp;p=540646#p540646&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) You play a short campaign with just a few units. Playable in a few hours, nevertheless it is fun to play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Salt Wars ===&lt;br /&gt;
&lt;br /&gt;
''Introductory campaign for the Era of Four Moons.''&lt;br /&gt;
&lt;br /&gt;
''As an officer of one of the Sea States you must defend your organization from aggressive rivals.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Sea States&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31498&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Saving Elensefar ===&lt;br /&gt;
&lt;br /&gt;
''Meneldur, elvish mariner of Elensefar, is driven to sea by the same orcs who attacked the city. He must gather an army willing to fight for him to regain Elensefar, his adopted homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 year (around 12 scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.2&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default Era&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?t=3072&amp;amp;start=0&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[SeafaringCampaign]]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Labeled as Expert, recruit list changes in all scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shameless Crossover Excuse ===&lt;br /&gt;
&lt;br /&gt;
''Fugitive dark sorcerer Gwiti Ha'atel discovers he has the power to mess with Wesnoth's continuity. His quest for revenge on the NPCs who have used his portraits will lead him through perils untold and in-jokes unnumbered, but shall pale before the horror he finds at his quest's end.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orcish Shyde, Mountain_King&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Undead&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32016&amp;amp;start=15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Swamplings ===&lt;br /&gt;
&lt;br /&gt;
''Banished by Yushnak the Ponderer, a tribe of lowly swamp goblins endure in the deadly mire of Pogo Bog. Four centuries before the founding of Wesnoth, this is the story of the goblins' struggle against the intrigues and betrayals of the greater races, and the rise of the first wolf rider.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' John Rawlins (boru)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.7n&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29784&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Swamplings Players Review]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Talentless Mage===&lt;br /&gt;
&lt;br /&gt;
''Humorous and silly campaign about mage apprentice who has managed to learn only one simple spell in thirty years.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 3 dialogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Noob Faction&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27608]&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Campaigns/Players_Reviews&amp;amp;action=submit#Talentless_Mage Player's review]&lt;br /&gt;
&lt;br /&gt;
=== The Dark Alliance===&lt;br /&gt;
&lt;br /&gt;
''Prince Terhar lived two years with elves. Little did he expect what would happen when he returned back to Weldyn.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 or 10 playable scenarios depending on the branch you take (+ 5 dialogue scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Recruit list changes in almost every scenario&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26924&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Dark Hordes ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11/?&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[TheDarkHordes]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [[http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Devil's Flute ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, unmaintained&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Author:''' lipk&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Creona, the well-known assassin, gets a strange job from a strange person. So, in fact, it's no surprise that things take a strange turn...&lt;br /&gt;
&lt;br /&gt;
'''Version:'''  0.1.4c&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Outlaws&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36044&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Earth's Gut ===&lt;br /&gt;
&lt;br /&gt;
''The year is 515YW. You are the young dwarven leader Hamel. Your tribe in the caves of Knalga is under pressure from its enemies, and resources are growing scarce. In order to forge the weapons required to resist your enemies, you must set forth and collect what ores and minerals remain.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 21 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, dwarves.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Earths_Gut/en_US/the_earths_gut.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.11&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This campaign is a &amp;quot;Dwarvish dungeon crawler&amp;quot; and is intended to be challenging for experienced players on hard whilst suitably easy on easy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Epic of Vaniyera ===&lt;br /&gt;
&lt;br /&gt;
''The expansionist Lavinian Legion, led by the Imperator himself, has invaded the northern forests of the Sidhe, or Wild Elves. It is up to Leithan the Thunderblade and his advisor Vaniyera to push its armies back where they came from...''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  oreb, turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 6 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard (Don't be fooled by &amp;quot;novice level&amp;quot; in the campaign description, this one is very hard.) &lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Working on this issue, the next release (due at the end of November, hah!) should bring easy difficulty back to the level of a reasonable introduction to the IE, while the hard difficulty will also become slightly easier. With any luck, this will be the last release before version 1.0 of the campaign].&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19490&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Fall of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
''As the beloved human empire of Wesnoth becomes lazy and arrogant in its peaceful state of happiness, Emperor Dantair demands the creation of another sun in a bid to destroy all evil. Or is it all for a different purpose? A man named Alitar sees it that way, and now he must survive the most evil inhabited lands if he is to stop chaos from rising, and Wesnoth from falling... This is the story of The Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pewskeepski&lt;br /&gt;
&lt;br /&gt;
'''Status:''' 1st part complete, 2nd WIP.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Outlaws&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Fall_of_Wesnoth/en_US/The_Fall_of_Wesnoth-1.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Founding of Borstep ===&lt;br /&gt;
&lt;br /&gt;
''The chieftain of your tribe has become decadent and weak. Take over, and lead your people to a better home--whether it is already occupied or not. The Northlands in year 9W are a barbaric place, but anyone who stands in your way will learn the power of orcs!''	&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 and 1 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Northerners&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Founding_of_Borstep/en_US/The_Founding_of_Borstep.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1b&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Kanzil) I find the protagonist hard to sympathise with. Also, most scenarios contain interesting twists. For example, in one, each time you killed a boar it gives you extra health.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (beetlenaut--author) In most Orcish campaigns the leader is heroic or just wants peace. Krag-Ubor wants plunder and battle like all enemy Orcs in other campaigns. I '''hope''' you don't sympathize too strongly, but I don't think you need to in order to enjoy the game play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Keep ===&lt;br /&gt;
&lt;br /&gt;
''A lone keep in frosty woods against enemies from far beyond.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DeRaid&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken (Does not work at all)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 0 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Broken&lt;br /&gt;
&lt;br /&gt;
'''Style:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Does not work at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Library of Kratemaqht ===&lt;br /&gt;
&lt;br /&gt;
''An ancient story from the old continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Rich Marinaccio (cephalo)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced (some scenarios are Easy - some rather Hard) &lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists and custom units.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Library_Of_Kratemaqht/en_US/The_Library_Of_Kratemaqht.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37798&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#The_Library_of_Kratemaqht Players Reviews]&lt;br /&gt;
&lt;br /&gt;
'''Notes:''' (Adamant14) This campaign has a thought-out story, shows a great love for detail;&lt;br /&gt;
It includes a great custom Dragon, some brilliant custom images (fire, burning houses, burning forest) that makes the scenery / maps look very nice.&lt;br /&gt;
&lt;br /&gt;
=== The Roar of the Woses ===&lt;br /&gt;
&lt;br /&gt;
''When the construction of a dam threatens the existence of her home, Kylix is forced on a journey to stop it.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Alarantalara&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10-11 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with Additions (primarily Saurians, Nagas, Woses)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29830&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (author) Potentially unbalanced on Hard difficulty due to experiments with non-standard ways to increase difficulty. This issue does not exist on the lower difficulty levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Three Elves ===&lt;br /&gt;
&lt;br /&gt;
''Three elves have just begun their adventure in the northern swampland. Will they become heroes or will they be responsible for another undead expansion?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Stanislav Hoferek&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios + 2 dialogue&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (Elves)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' (does it have one?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Sojournings of Grog ===&lt;br /&gt;
&lt;br /&gt;
''Grog (as starred in Under the Burning Suns) goes home.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Peter Christopher, Thomas Hockings &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Elvish_Hunter&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios in 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Sojournings_of_Grog/en_US/The_Sojournings_of_Grog.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default. Most of the time you play trolls and some desert elves accompanying Grog.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 3.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Unstoppable Legion ===&lt;br /&gt;
&lt;br /&gt;
''Horseback campaign. The kingdom of Suveran, far away from Wesnoth, is under attack. Only Deuterus, a Great Druid, knows their weakness and only Viktor, a young noble, dares go on the quest to stop them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Currently 15 playable sceanrios, including a fork of three paths near the beginning, and another fork of two paths later on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mainly Skirmish&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Unstoppable_Legion/en_US/The_Unstoppable_Legion.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Play mounted units, including expanded Cavalryman line, and completely new Bowrider line. Joined later by Dwarves. Main enemies are the dark fighters and dark cultists.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.8.7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The White Troll ===&lt;br /&gt;
&lt;br /&gt;
''The story of a white troll whelp with strange magic powers, who is raised in an elvish village.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wesnoth Italian Forum&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: you play with elves and trolls. Also features custom units with special advancements and abilities.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/White_Troll/en_US/white_troll.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38828&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== To Lands Unknown ===&lt;br /&gt;
&lt;br /&gt;
''This is the story of Mehir, the Summoner, and his journey to lands unknown.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios, 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate (Era of Magic)&lt;br /&gt;
&lt;br /&gt;
'''Style''': Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Era:''' Era of Magic&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown Players Review]&lt;br /&gt;
&lt;br /&gt;
=== Unlikely Alliance ===&lt;br /&gt;
&lt;br /&gt;
''Play as the members of an alliance between the elves, drakes, and undead after the Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Creativity&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken ( Abandoned )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 broken scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' -&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' -&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Did not work at all. Seems abandoned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Up from Slavery ===&lt;br /&gt;
&lt;br /&gt;
''The Orcei are captives in the imperial city of Lavinium, gladiators performing for the emperor Optus Maximus. All it will take, however, is one orc to lead his people to freedom. The Samnis called Sparxus may be that orc.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Arena (= No recruit, small group gladiator fights)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Orcei Gladiatores&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) At some point, I am intending to completely re-work this campaign to be a multi-player campaign, with one side led by Sparxus and one by Gravirivus. If anyone would like to take this on or has ideas for how to accomplish this, let us know. Nevertheless, its playable as a single player campaign now with some nice ideas that could be developed further.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warmaster ===&lt;br /&gt;
&lt;br /&gt;
''One day the scout of your king brings a mysterious little stone, called Zrai-Stone, back from one of his trips. Soon that stone causes a lot of trouble...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Conkinator&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.5&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 battle + 2 bonus + 1 epilogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (loyalists)&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=15527&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Way of Dragon ===&lt;br /&gt;
&lt;br /&gt;
''The story of what might happen if a person against his will transform into a dragon...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DrakeDragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish/RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37876 Wesnoth Forum]    [http://uporoom.ru/index.php/topic,179.0.html Russian Forum]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Promising short campaign, you play with just a few units.&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.11.x - development ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.11.x development version.''&lt;br /&gt;
&lt;br /&gt;
''Please note: Battle for Wesnoth 1.11.0 features a bug that messes up the selection of difficulty levels.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) The campaign did not work with BfW version 1.11.0, or BfW version 1.11.1, so please use BfW version 1.11.2 or later!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Song of Fire ===&lt;br /&gt;
&lt;br /&gt;
''''''Part I: The Last War''' - In a long-forgotten era, at the heart of the Great Continent, an ancestral evil is awakened, threatening to destroy the whole world. Follow young Myra in the war that will alter the future of Irdya and its peoples forever.''&lt;br /&gt;
&lt;br /&gt;
''''''Part II: Towards the Rising Sun''' - After the vicious Last War, Myra has become the new leader of Aragwaithi and Windsong alike. Albeit young and shaken by many losses, she must steel herself to lead her people through the vast and hostile Hannuk Steppes. However, her journey will take them all farther than in their wildest dreams. Furthermore, Myra must deal with the evil influence of the mysterious red gem she found after the last battle.''&lt;br /&gt;
&lt;br /&gt;
''''''Part III: Raging Skies''' - The refugees have finally found a new home: families are built, allies are made and, for the first time in years, Myra and her friends know peace. However, when everything seems normal, ambition and thirst for power cause the break out of a continental war. And, amidst this new storm, an old foe rises agan, more powerful than ever. Witness the end of the song of Irdya's first great heroine.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 36 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default+War of Legends&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.3.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coming of the Storm ===&lt;br /&gt;
&lt;br /&gt;
''A new recruit joins the imperial army, eager to change the world and see combat. Little does he realise just how much action he will get and where his journey will take him. ''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' TrashMan&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 playable scenarios / 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23361&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruthless ===&lt;br /&gt;
&lt;br /&gt;
''A bard (an aging criminal) is walking in wasteland. Nothing but two hands in his pockets, and nothing but stones around. Suddenly he sees a knight on errand--a dangerous opponent, especially in broad daylight. The two strangers are soon sitting by the campfire, and the bard is telling a story.&lt;br /&gt;
(Beginner level, 10+ fights).''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' homunculus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios + 5 cutscene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal &lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (Orcs)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37874&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Recommendable campaign, with smart unusual ideas and a good detailed story.&lt;br /&gt;
You fight with few units on small but perfect maps. About the difficulty: The author describes his campaign as 'beginner level', but for me the difficulty is rather NORMAL than EASY.&lt;br /&gt;
&lt;br /&gt;
== Player Reviews ==&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews Link to Players Reviews]'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51305</id>
		<title>Guide to UMC Content</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=51305"/>
		<updated>2013-06-04T09:54:40Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Antar, Son of Rheor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a guide to the current (1.10.x/1.11.x) UMC campaigns for players. It aims to provide all the information not only about the story, but also about completion, difficulty and playing style of the campaign. See http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37476 for further information, for currently non-available UMC-content please refer to http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36733. Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
=== Blueprint ===&lt;br /&gt;
&lt;br /&gt;
'''Status:'''&lt;br /&gt;
* Broken = Does not work at all&lt;br /&gt;
* Incomplete = Partially written, no progress&lt;br /&gt;
* WIP = Partially written, progress&lt;br /&gt;
* Complete = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
* Finished = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
'''Length:'''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
Please note: Often campaigns introducing new mechanics are listed as expert level on the add-on server, here difficulty means the raw difficulty after the mechanics are understood.&lt;br /&gt;
&lt;br /&gt;
* Unbalanced = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erraticly from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
* Easy&lt;br /&gt;
* Normal&lt;br /&gt;
* Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones.&lt;br /&gt;
&lt;br /&gt;
* Skirmish = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
* Dungeon = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
* RPG = role playing game elements such as talking with non-player-characters, item collection, dependency on a party of very few adventurers without or limited recruits&lt;br /&gt;
* Survival = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
* Large Battle = large number of units on the battlefield, sizely maps&lt;br /&gt;
* Simulation = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
* Boss battle = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
* Minigames = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:'''&lt;br /&gt;
&lt;br /&gt;
* Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
'''Custom units:'''&lt;br /&gt;
&lt;br /&gt;
* Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
&lt;br /&gt;
* Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.10.x - stable ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.10.x stable version.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aldur The Great ===&lt;br /&gt;
&lt;br /&gt;
''This is a story about Aldur the Great.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' pintercsabi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, but unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Short unbalanced campaign, maybe abandoned. You fight with Peasants, Ruffians and Woodsman against Orcs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alfhelm the Wise ===&lt;br /&gt;
&lt;br /&gt;
''This is the tale of Alfhelm, called by some the Wise, son of Alfric Conqueror. This is the tale of his victories over his enemies, and his rise to power in the clans of Marauderdom. This is the tale of his journey south and his destruction of the Lavinian Empire. And this is the tale of his demise in the dark forests far to the east of his homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 gameplay scenarios &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Moderate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Marauders.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=17144&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Though this campaign is complete and playable the whole way through, the code is four years old and pretty buggy. If you notice any errors while playing, please let me know and I'll incorporate the fixes into my next revision as soon as possible.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A New Order ===&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished. &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 45 scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The old kingdom of Wesnoth has fallen before barbarian hordes. The occupying barbarians are on the brink of civil war, the seeds of Wesnothian rebellion are kept alive by old legends, while bandits and Khalifate mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?&lt;br /&gt;
Note: This campaign contains mature themes, some of which may be unsuitable for children.&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 1.2.15&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.10. In addition, you have to install Era Khalifate add-on; the Akladian Music package is optional&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Akladians, Khalifate&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Pyrophorus) Certainly one of the most mature and well designed campaign in add-ons. A must.&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
=== A Story of the Northlands ===&lt;br /&gt;
&lt;br /&gt;
''A story of life and death in a remote village of the Northlands. Your village has been overrun by an orcish raid. You fight for its freedom while you wait for help to arrive.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' zepko&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + additions: you play with a custom faction of outlaws and with a custom party of loyalist knights.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Story_of_the_Northlands/en_US/A_Story_of_the_Northlands.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Vision Blinded ===&lt;br /&gt;
&lt;br /&gt;
''Defend the northern forest against what appeared like a routine orcish raid, and unravel the greater conspiracies that lie below its waves.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' LemonTea&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' AxalaraFlame&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves (+ Trolls, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463&amp;amp;hilit=a+vision+blinded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Battle Against Time===&lt;br /&gt;
&lt;br /&gt;
''Rescue fellow orcish warchief before he is executed. (This is not a normal campaign. It is experiment with carryover system. You will start with defined number of turns and gold. You will only have that many turns to play through the whole campaign. There is no finish bonus and gold carryover is always 100%.)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenarios + 1 prologue scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Orcs&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27319&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Besieged Druids ===&lt;br /&gt;
&lt;br /&gt;
''A elvish school for druids comes under attack by goblins. It seems more than just a routine raid; is there something more sinister behind this attack? - In Beseiged Druids, you control Eärendil, the surviving teacher at the school, and the many and varied initiates. Not all of these are ordinary students; many have been experimenting with other forms of magic, while others are simply overachievers in some area of study. Unfortunately, they are not especially good at combat, at least initially. Together with a very small contingent of surviving guards, it is up to these students to save the island of Aleron from disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Celtic Minstrel&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/DruidSiege/en_US/celmin-druid-siege.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37342&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bitter Revenge===&lt;br /&gt;
&lt;br /&gt;
''Amidst the strife and turmoil of the first Dark Age of Wesnoth, a time of transient monarchies and conspiracies against the Crown, the boy Darith witnesses the murder of his father by a general of Wesnoth. Follow Darith's quest for retribution in this treacherous tale of betrayal, deceit, love, remorse, and vengeance.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (mostly outlaws and undead, custom units)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26699&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cities of the Frontier ===&lt;br /&gt;
&lt;br /&gt;
''Settle a new town in the wilds north of the Great River.''&lt;br /&gt;
	&lt;br /&gt;
''This campaign makes several changes to the standard Wesnoth game mechanics, and focuses on city-building and gold management.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' esci&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Not fixed, approximately 6-10 seasons of 36 turns each&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Simulation, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalist&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Cities_of_the_Frontier/en_US/Cities_of_the_Frontier.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36004&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Considerate Dead ===&lt;br /&gt;
&lt;br /&gt;
''As the wind goes on and on, people discover necromancer aren't always bad. Made by tribes45 - No scenarios are done, 4 playable out of ??.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' tribes45 aka tribes55&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete, unbalanced, abandoned&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' .009&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36522&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Count Kromire ===&lt;br /&gt;
&lt;br /&gt;
''You are the blood son of a vampire lord, however when the might of the celestial crusades comes knocking, and your father is slain, you flee your lands. However you intend to return, to restore the lands of Kromire to the Kromires, to avenge your father, and most importantly, to make sure that no celestial ever dares come into your mountains again.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' currently none&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Myths, Vampires&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=21560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Elvish Dynasty RPG ===&lt;br /&gt;
&lt;br /&gt;
''You are the new ruler of an elvish kingdom! Can you lead your people to glory? This campaign is highly randomized so it will be different every time you play!''&lt;br /&gt;
&lt;br /&gt;
''Sequel to Ooze Mini-Campaign''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' spencelack&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Wesbane&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 years, in each year choice between dialogue and fighting scenario (selected out of a large pool of possible scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9b&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=28627&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fall of Silvium ===&lt;br /&gt;
&lt;br /&gt;
''You are Caius Regilius, Tribune of the province of Silvia, located in the northmost reaches of the Lavinian Empire at the height of its power. But the Empire has overextended itself, The city of Silvium lies seperated from the rest of the Empire by the mountains of Arendia, and is sandwiched between the Marauders and the Sidhe... war is inevitable, and the province of Silvia will almost certainly fall.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Lavinian Legion.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24356&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The final level of this campaign is not supposed to be winnable. It's a final blaze of glory and chance to use all your high-powered units, but to 'win' the campaign, you must lose...the ending is similar to a certain mainline campaign, but predates it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fate of a Princess ===&lt;br /&gt;
&lt;br /&gt;
''Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the king's justice. The baron's deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.''&lt;br /&gt;
&lt;br /&gt;
''Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldres' daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne, mich, simonsmith&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26-29 scenarios (some dialogue-only), 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play two different, unique cross-faction combinations in each part.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Fate_of_a_Princess/en_US/Fate_of_a_Princess.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.17&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.12 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26327&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Fate_of_a_princess Players Review]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forgotten Kingdom ===&lt;br /&gt;
&lt;br /&gt;
''Help Orlog, a troll chieftan, lead his people to safety in the underground and discover an ancient power long forgotten.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Limabean&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chrysophylax&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete ( but all scenarios playable and balanced )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Goblins, Trolls&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Forgotten_Kingdom/en_US/Forgotten_Kingdom.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23483&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) This campaign includes a custom Troll line. A good campaign, I hope Limabean and/or Chrysophylax will finish it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Forward they Cried ===&lt;br /&gt;
&lt;br /&gt;
''You are the leader of an advanced detachment that has been tasked with capturing a bridgehead while the main army prepares to attack. It should be a simple enough assignment.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Glowing Fish&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lord-Knightmare &lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 scenario ( rather a single scenario than a campaign )&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23656&amp;amp;p=350126&amp;amp;hilit=forward+they+cried#p350126&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Only a single scenario, but a great scenario.&lt;br /&gt;
(UnwiseOwl) You wouldn't want to stop thinking for a turn, and it's good for the first few turns, but this one leaves me wanting more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Galuldur's First Journey ===&lt;br /&gt;
&lt;br /&gt;
''While the belligerence of orcs is nothing new, their intensifying attacks on a fledgling colony of elves in Pindir Forest begin to show signs of a deeper malice, forcing Galuldur, the young son of the colony's adventurous founder Galur, to venture out of his forest's friendly trees in search of help. His simple errand quickly turns into a frantic quest to unearth the roots of the mysterious evil threatening his people. As you lead him through unknown lands, Galuldur, forced to match wits with unexpected adversaries at nearly every turn in a desperate attempt to save his world, quickly learns that the world is neither a friendly nor a simple place.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8-9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Galuldur/en_US/Galuldur.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31895&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Grnk the Mighty ===&lt;br /&gt;
&lt;br /&gt;
''All his life, puny little goblin Grnk the Frail had been dreaming about leaving the orcs and starting a better life.  When he finally arrives in the human town of Shmaltupp, he realizes that the world is not as black and white as he had imagined.  He also discovers that he is no ordinary goblin.  Follow Grnk the Frail on his path to becoming Grnk the Mighty.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Part I complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, changing (no standard army building gameplay)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Grnk/en_US/Grnk.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.5 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34970&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
&lt;br /&gt;
''Episode I - Seeking the Light: Long after the Fall, the last forest elves are forced to abandon their safe valley, and find themselves resorting to the dark means of necromancy in order to survive the perils and challenges of this new harsh world. May they finally free the Great Continent from its chaos, or perish in the foolish attempt of restoring peace and life to the lands.''&lt;br /&gt;
&lt;br /&gt;
''Episode II - Armageddon: As the shadow of Chaos covers the entire continent, an assorted group of foolish heroes prepares a counter-attack to the Empire, with one unique goal in their minds: defeat the evil Emperor, whoever it is. Lead these courageous living and non-living warriors to victory, and rediscover lost secrets of the history.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' shadowmaster &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Espreon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios in two episodes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Boss battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Unique. You play Elves and Undead throughout the campaign + in the 2nd part Northerners and Aragwaithi.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.90.6&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (taptap) Despite its acknowledged flaws (generic hero, plot holes, deus ex machina moments, gameplay issues in the 2nd part) this is undoubtedly the most iconic campaign in UMC. It single-handedly redefines the elvish history and sketches a cosmology for the ages after the fall. With the Chaos empire and its various allies it introduces an era worth of factions to single-player play. At the same time it features some of the most beautiful maps in Wesnoth and stunning art on par with mainline campaigns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Invasion of Eliador ===&lt;br /&gt;
&lt;br /&gt;
''A peaceful island is about to be invaded by unknadd-ons foes travelling towards the eastern shore. It is up to a family of outlaws to warn the island's inhabitants before it's too late.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Sam M. (Genosuke)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios + epilogue&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6556&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Invasion_of_Eliador]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Langrisser Sample Campaign ===&lt;br /&gt;
&lt;br /&gt;
''The Imperial Knights of the Rayguard Empire have disrupted the peace of the village that was Hein's hometown, seeking only a girl named Liana. Fight to rescue Liana.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Morath&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36417&amp;amp;hilit=Langrisser&lt;br /&gt;
&lt;br /&gt;
'''Wikipedia:''' [http://en.wikipedia.org/wiki/Langrisser What is Langrisser]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Single scenario, different from usual Wesnoth behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nothwards ===&lt;br /&gt;
&lt;br /&gt;
''A lone keep in frosty woods against enemies from far beyond.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DeRaid&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken (Does not work at all)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 0 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Style:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Does not work at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
&lt;br /&gt;
''The Imperialists ambitions of pushing into the Sea States have been repeatedly thwarted and now they turn their attentions elsewhere. You are an outcast Darklander now living as a mercenary in the Sea States and the rumors you hear indicate that they will be coming to your people. Though an outcast you do not wish to see them subjugated. The spirit whose friendship caused you to be an outcast has a plan that might allow you to save them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Darklanders (+ a wide variety of mercenaries)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34318&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return of the Monster ===&lt;br /&gt;
&lt;br /&gt;
''It was time for Amailoss, born from the naga queen's last egg, to leave home. Time for him to grow into a leader in his own right, and eventually become the guardian and leader of another naga city. But along the way, he became friends with an unusual mud-crawler, they met a strange young monster, discovered that a spirit had escaped from an orc prison, and the mystery of that spirit became a grave challenge for Amailoss and the many races in the region....''&lt;br /&gt;
&lt;br /&gt;
''A naga campaign, involving elves, orcs, saurians, turtle-like races, and some monsters.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable, 2 dialog scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play a custom naga faction and carapaces (a turtle-like race).&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Return_of_the_Monster/en_US/Return_of_the_Monster.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36438&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Noelren ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios + 7 cut scenes&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pyrophorus&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''A story in the first Dark Age of Wesnoth. See how various heroes stick together to shun the threat of black magics, restore the secret kingdom of Noelren and install Garard I on the throne of Wesnoth. This campaign features complex scenarios, unusual objectives and units, emphasizing more on story and adventures than hardcore fighting.''&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 0.7.6&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' BfW 1.10 (not tested on 1.11)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy, unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Large Battle, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + custom units&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/ReturnToNoelren/en_US/ReturnToNoelren.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34685#p501026&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) I never saw so much fantastic and new ideas in one single UMC, wow!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Return to Ruins ===&lt;br /&gt;
&lt;br /&gt;
''The humble farmers of Vertegris are summoned by Erik the General of Weldyn to put an end to an orcish raiding party. If they knew what would befall their former home... They never would have left. This is a relatively short campaign with 8 scenarios, It is still undergoing changes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Jeff Stevens (Ulfsark)&lt;br /&gt;
&lt;br /&gt;
'''Composer:''' Paul Fredericks (paulfredericksmusic.com)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy,Normal,Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default,(Loyalists, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x &lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37790&amp;amp;sid=9059f18497cda1219f42a626544d0ffd&amp;amp;p=540646#p540646&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) You play a short campaign with just a few units. Playable in a few hours, nevertheless it is fun to play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Salt Wars ===&lt;br /&gt;
&lt;br /&gt;
''Introductory campaign for the Era of Four Moons.''&lt;br /&gt;
&lt;br /&gt;
''As an officer of one of the Sea States you must defend your organization from aggressive rivals.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Sea States&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31498&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Saving Elensefar ===&lt;br /&gt;
&lt;br /&gt;
''Meneldur, elvish mariner of Elensefar, is driven to sea by the same orcs who attacked the city. He must gather an army willing to fight for him to regain Elensefar, his adopted homeland.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 year (around 12 scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.2&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default Era&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?t=3072&amp;amp;start=0&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[SeafaringCampaign]]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Labeled as Expert, recruit list changes in all scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shameless Crossover Excuse ===&lt;br /&gt;
&lt;br /&gt;
''Fugitive dark sorcerer Gwiti Ha'atel discovers he has the power to mess with Wesnoth's continuity. His quest for revenge on the NPCs who have used his portraits will lead him through perils untold and in-jokes unnumbered, but shall pale before the horror he finds at his quest's end.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orcish Shyde, Mountain_King&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Undead&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32016&amp;amp;start=15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Swamplings ===&lt;br /&gt;
&lt;br /&gt;
''Banished by Yushnak the Ponderer, a tribe of lowly swamp goblins endure in the deadly mire of Pogo Bog. Four centuries before the founding of Wesnoth, this is the story of the goblins' struggle against the intrigues and betrayals of the greater races, and the rise of the first wolf rider.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' John Rawlins (boru)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.7n&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29784&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Swamplings Players Review]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Talentless Mage===&lt;br /&gt;
&lt;br /&gt;
''Humorous and silly campaign about mage apprentice who has managed to learn only one simple spell in thirty years.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 playable scenarios + 3 dialogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Noob Faction&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=27608]&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Campaigns/Players_Reviews&amp;amp;action=submit#Talentless_Mage Player's review]&lt;br /&gt;
&lt;br /&gt;
=== The Dark Alliance===&lt;br /&gt;
&lt;br /&gt;
''Prince Terhar lived two years with elves. Little did he expect what would happen when he returned back to Weldyn.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wonderboy&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 or 10 playable scenarios depending on the branch you take (+ 5 dialogue scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: Recruit list changes in almost every scenario&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=26924&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Dark Hordes ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11/?&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[TheDarkHordes]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [[http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Devil's Flute ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, unmaintained&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Author:''' lipk&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Creona, the well-known assassin, gets a strange job from a strange person. So, in fact, it's no surprise that things take a strange turn...&lt;br /&gt;
&lt;br /&gt;
'''Version:'''  0.1.4c&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Outlaws&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36044&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Earth's Gut ===&lt;br /&gt;
&lt;br /&gt;
''The year is 515YW. You are the young dwarven leader Hamel. Your tribe in the caves of Knalga is under pressure from its enemies, and resources are growing scarce. In order to forge the weapons required to resist your enemies, you must set forth and collect what ores and minerals remain.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 21 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, dwarves.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Earths_Gut/en_US/the_earths_gut.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.11&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This campaign is a &amp;quot;Dwarvish dungeon crawler&amp;quot; and is intended to be challenging for experienced players on hard whilst suitably easy on easy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Epic of Vaniyera ===&lt;br /&gt;
&lt;br /&gt;
''The expansionist Lavinian Legion, led by the Imperator himself, has invaded the northern forests of the Sidhe, or Wild Elves. It is up to Leithan the Thunderblade and his advisor Vaniyera to push its armies back where they came from...''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  oreb, turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 6 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard (Don't be fooled by &amp;quot;novice level&amp;quot; in the campaign description, this one is very hard.) &lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) Working on this issue, the next release (due at the end of November, hah!) should bring easy difficulty back to the level of a reasonable introduction to the IE, while the hard difficulty will also become slightly easier. With any luck, this will be the last release before version 1.0 of the campaign].&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19490&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Fall of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
''As the beloved human empire of Wesnoth becomes lazy and arrogant in its peaceful state of happiness, Emperor Dantair demands the creation of another sun in a bid to destroy all evil. Or is it all for a different purpose? A man named Alitar sees it that way, and now he must survive the most evil inhabited lands if he is to stop chaos from rising, and Wesnoth from falling... This is the story of The Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pewskeepski&lt;br /&gt;
&lt;br /&gt;
'''Status:''' 1st part complete, 2nd WIP.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Outlaws&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Fall_of_Wesnoth/en_US/The_Fall_of_Wesnoth-1.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Founding of Borstep ===&lt;br /&gt;
&lt;br /&gt;
''The chieftain of your tribe has become decadent and weak. Take over, and lead your people to a better home--whether it is already occupied or not. The Northlands in year 9W are a barbaric place, but anyone who stands in your way will learn the power of orcs!''	&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 and 1 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Northerners&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Founding_of_Borstep/en_US/The_Founding_of_Borstep.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1b&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Kanzil) I find the protagonist hard to sympathise with. Also, most scenarios contain interesting twists. For example, in one, each time you killed a boar it gives you extra health.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (beetlenaut--author) In most Orcish campaigns the leader is heroic or just wants peace. Krag-Ubor wants plunder and battle like all enemy Orcs in other campaigns. I '''hope''' you don't sympathize too strongly, but I don't think you need to in order to enjoy the game play.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Keep ===&lt;br /&gt;
&lt;br /&gt;
''A lone keep in frosty woods against enemies from far beyond.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DeRaid&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken (Does not work at all)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 0 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Broken&lt;br /&gt;
&lt;br /&gt;
'''Style:''' ?&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Does not work at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Library of Kratemaqht ===&lt;br /&gt;
&lt;br /&gt;
''An ancient story from the old continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Rich Marinaccio (cephalo)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced (some scenarios are Easy - some rather Hard) &lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists and custom units.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Library_Of_Kratemaqht/en_US/The_Library_Of_Kratemaqht.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37798&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#The_Library_of_Kratemaqht Players Reviews]&lt;br /&gt;
&lt;br /&gt;
'''Notes:''' (Adamant14) This campaign has a thought-out story, shows a great love for detail;&lt;br /&gt;
It includes a great custom Dragon, some brilliant custom images (fire, burning houses, burning forest) that makes the scenery / maps look very nice.&lt;br /&gt;
&lt;br /&gt;
=== The Roar of the Woses ===&lt;br /&gt;
&lt;br /&gt;
''When the construction of a dam threatens the existence of her home, Kylix is forced on a journey to stop it.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Alarantalara&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10-11 scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with Additions (primarily Saurians, Nagas, Woses)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.7&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=29830&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (author) Potentially unbalanced on Hard difficulty due to experiments with non-standard ways to increase difficulty. This issue does not exist on the lower difficulty levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Three Elves ===&lt;br /&gt;
&lt;br /&gt;
''Three elves have just begun their adventure in the northern swampland. Will they become heroes or will they be responsible for another undead expansion?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Stanislav Hoferek&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios + 2 dialogue&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (Elves)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' (does it have one?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Sojournings of Grog ===&lt;br /&gt;
&lt;br /&gt;
''Grog (as starred in Under the Burning Suns) goes home.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Peter Christopher, Thomas Hockings &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Elvish_Hunter&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios in 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Sojournings_of_Grog/en_US/The_Sojournings_of_Grog.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default. Most of the time you play trolls and some desert elves accompanying Grog.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 3.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Unstoppable Legion ===&lt;br /&gt;
&lt;br /&gt;
''Horseback campaign. The kingdom of Suveran, far away from Wesnoth, is under attack. Only Deuterus, a Great Druid, knows their weakness and only Viktor, a young noble, dares go on the quest to stop them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Chris Neville-Smith (Chris NS)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Currently 15 playable sceanrios, including a fork of three paths near the beginning, and another fork of two paths later on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mainly Skirmish&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Unstoppable_Legion/en_US/The_Unstoppable_Legion.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Play mounted units, including expanded Cavalryman line, and completely new Bowrider line. Joined later by Dwarves. Main enemies are the dark fighters and dark cultists.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.8.7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The White Troll ===&lt;br /&gt;
&lt;br /&gt;
''The story of a white troll whelp with strange magic powers, who is raised in an elvish village.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Wesnoth Italian Forum&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default: you play with elves and trolls. Also features custom units with special advancements and abilities.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/White_Troll/en_US/white_troll.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.5&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38828&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== To Lands Unknown ===&lt;br /&gt;
&lt;br /&gt;
''This is the story of Mehir, the Summoner, and his journey to lands unknown.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 scenarios, 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate (Era of Magic)&lt;br /&gt;
&lt;br /&gt;
'''Style''': Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Era:''' Era of Magic&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.6.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown Players Review]&lt;br /&gt;
&lt;br /&gt;
=== Unlikely Alliance ===&lt;br /&gt;
&lt;br /&gt;
''Play as the members of an alliance between the elves, drakes, and undead after the Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Creativity&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Broken ( Abandoned )&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 broken scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' -&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' -&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' -&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Did not work at all. Seems abandoned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Up from Slavery ===&lt;br /&gt;
&lt;br /&gt;
''The Orcei are captives in the imperial city of Lavinium, gladiators performing for the emperor Optus Maximus. All it will take, however, is one orc to lead his people to freedom. The Samnis called Sparxus may be that orc.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Arena (= No recruit, small group gladiator fights)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Orcei Gladiatores&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Maintainer) At some point, I am intending to completely re-work this campaign to be a multi-player campaign, with one side led by Sparxus and one by Gravirivus. If anyone would like to take this on or has ideas for how to accomplish this, let us know. Nevertheless, its playable as a single player campaign now with some nice ideas that could be developed further.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warmaster ===&lt;br /&gt;
&lt;br /&gt;
''One day the scout of your king brings a mysterious little stone, called Zrai-Stone, back from one of his trips. Soon that stone causes a lot of trouble...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Conkinator&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' trewe&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.5&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 battle + 2 bonus + 1 epilogue scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Default (loyalists)&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=15527&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Way of Dragon ===&lt;br /&gt;
&lt;br /&gt;
''The story of what might happen if a person against his will transform into a dragon...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' DrakeDragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete &lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 playable scenarios + 1 dialogue-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish/RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37876 Wesnoth Forum]    [http://uporoom.ru/index.php/topic,179.0.html Russian Forum]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Promising short campaign, you play with just a few units.&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.11.x - development ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.11.x development version.''&lt;br /&gt;
&lt;br /&gt;
''Please note: Battle for Wesnoth 1.11.0 features a bug that messes up the selection of difficulty levels.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 playable scenarios / 1 cutscene &lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists and Elves (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) The campaign did not work with BfW version 1.11.0, or BfW version 1.11.1, so please use BfW version 1.11.2 or later!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Song of Fire ===&lt;br /&gt;
&lt;br /&gt;
''''''Part I: The Last War''' - In a long-forgotten era, at the heart of the Great Continent, an ancestral evil is awakened, threatening to destroy the whole world. Follow young Myra in the war that will alter the future of Irdya and its peoples forever.''&lt;br /&gt;
&lt;br /&gt;
''''''Part II: Towards the Rising Sun''' - After the vicious Last War, Myra has become the new leader of Aragwaithi and Windsong alike. Albeit young and shaken by many losses, she must steel herself to lead her people through the vast and hostile Hannuk Steppes. However, her journey will take them all farther than in their wildest dreams. Furthermore, Myra must deal with the evil influence of the mysterious red gem she found after the last battle.''&lt;br /&gt;
&lt;br /&gt;
''''''Part III: Raging Skies''' - The refugees have finally found a new home: families are built, allies are made and, for the first time in years, Myra and her friends know peace. However, when everything seems normal, ambition and thirst for power cause the break out of a continental war. And, amidst this new storm, an old foe rises agan, more powerful than ever. Witness the end of the song of Irdya's first great heroine.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 36 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default+War of Legends&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.3.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=38210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Birth of a Lich ===&lt;br /&gt;
&lt;br /&gt;
''This is the life story of the dreaded lich Malifor, his struggle as a mage outcast, the orcish conquest of the northlands and his transformation to quench the thirst for revenge''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios / 2 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Human outlaws, dwarves, undead&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Birth_of_a_Lich/en_US/Birth_of_a_Lich.html Custom Units]&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.3&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37057&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coming of the Storm ===&lt;br /&gt;
&lt;br /&gt;
''A new recruit joins the imperial army, eager to change the world and see combat. Little does he realise just how much action he will get and where his journey will take him. ''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' TrashMan&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 playable scenarios / 4 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23361&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of Far North ===&lt;br /&gt;
&lt;br /&gt;
''The tale of the legendary Black Eye Karun,depicting his rise to power, his successes and his brutal assassination.'&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable scenarios / 1 dialogue only,1 cutscene&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Orcs, Trolls, Saurians, Nagas&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Legend_of_Far_North/en_US/Legend_of_Far_North.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34769&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Legend of the Invincibles ===&lt;br /&gt;
&lt;br /&gt;
'''''Part I: Shrouded in Darkness''' (5 chapters, 90 scenarios) - A pair of heroes, after stopping an orcish thread, are outcast into caves, where they have no other choice than to become liches in order to survive. They preserved their original appearance and moral principles, and fight in various skirmishes against evil (although using evil methods sometimes), until the Fall, when they are buried alive under the ashes of the third sun.''&lt;br /&gt;
&lt;br /&gt;
'''''Part II: Into the Light''' (4 chapters, 96 scenarios at the moment) - Long after the Fall, the lich heroes awaken. Searching for more power, they manage to resurrect themselves as living beings, but this time more powerful and ridden of the evil within. But the evil from inside them did not cease to exist, and started a campaign to conquer the world. Stopping the campaign caused an even worse disaster...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Dugi &lt;br /&gt;
&lt;br /&gt;
'''Status:''' WiP (but Part I might be considered complete)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 185 (+7 talk-only) scenarios at the moment&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' mostly Skirmish and Dungeon (all other styles are present as well, but less frequently)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Elves, Loyalists, Undead, Dwarves; but they advance past their usual maximum level&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.5.0&lt;br /&gt;
&lt;br /&gt;
'''Review:''' [http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles Players Review]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The most unique feature of this campaign is its RPG-like unit development system, enemies drop items units can use, leaders are stronger than most usual units and all units get AMLA (after maximum level advancement) after reaching their maximum level (that is also increased by a load of additional level 4 units).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rebellion in the North ===&lt;br /&gt;
&lt;br /&gt;
''A great orcish uprising tends to destabilise the Northlands. As the future Lord Protector of the Northern Alliance you have to crush the rebellion and establish peace again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Author:''' chak_abhi&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 24 playable scenarios / 3 dialogue only,2 cutscenes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists, Dwarves, Gryphons, Merfolk&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.12&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33059&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruthless ===&lt;br /&gt;
&lt;br /&gt;
''A bard (an aging criminal) is walking in wasteland. Nothing but two hands in his pockets, and nothing but stones around. Suddenly he sees a knight on errand--a dangerous opponent, especially in broad daylight. The two strangers are soon sitting by the campfire, and the bard is telling a story.&lt;br /&gt;
(Beginner level, 10+ fights).''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' homunculus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 playable scenarios + 5 cutscene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal &lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default (Orcs)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.4&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37874&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (Adamant14) Recommendable campaign, with smart unusual ideas and a good detailed story.&lt;br /&gt;
You fight with few units on small but perfect maps. About the difficulty: The author describes his campaign as 'beginner level', but for me the difficulty is rather NORMAL than EASY.&lt;br /&gt;
&lt;br /&gt;
== Player Reviews ==&lt;br /&gt;
&lt;br /&gt;
'''[http://wiki.wesnoth.org/Guide_to_UMC_Campaigns/Players_Reviews Link to Players Reviews]'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51304</id>
		<title>FilterWML/Examples - How to use Filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FilterWML/Examples_-_How_to_use_Filter&amp;diff=51304"/>
		<updated>2013-06-04T08:58:04Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Result sets and arrays. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WML Filtering ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Filters are a very important part of WML language, and a fairly complex too for various  &lt;br /&gt;
reasons. Here, we shall try to explain how to use them with more details than in the reference  &lt;br /&gt;
wiki pages. But the goal is not to replace these pages, and we assume you have at least some  &lt;br /&gt;
knowledge of the various WML filters, namely unit and location filters. The examples given  &lt;br /&gt;
below aren’t always the best way to do things: the goal here is understanding filtering, not to  &lt;br /&gt;
give a complete WML course.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basics: How filters work. ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Filtering is narrowing a set of objects to a result set using criteria. Let’s give an example :  &lt;br /&gt;
given a set of cards, if one is asked to select the spades, (s)he will probably check the cards  &lt;br /&gt;
one by one and create two stacks : one containing only the spades, and another containing the  &lt;br /&gt;
unselected cards. This is a very simple filter, where the criterion is « this card has spades  &lt;br /&gt;
colour » and the result set is a card stack. &lt;br /&gt;
The spades cards are said ‘matching’ the filter.  &lt;br /&gt;
If next we’re asked to find the king of spades, most probably, we will not restart from the  &lt;br /&gt;
beginning but only scan the spades stack to find the right card. This is an example of two  &lt;br /&gt;
criteria filter. In WML we would write something like :  &lt;br /&gt;
 [filter]&lt;br /&gt;
     colour=spades&lt;br /&gt;
     value=king&lt;br /&gt;
 [/filter]&lt;br /&gt;
to describe the operation. Criteria are expressions evaluating to true or false. Is this card colour  &lt;br /&gt;
spades ? That’s how we must read the sentence: ‘colour=spades’.  &lt;br /&gt;
Now, stating both criteria must be met is not the only way to combine them:  &lt;br /&gt;
 [filter]  &lt;br /&gt;
     colour=spades,diamonds  &lt;br /&gt;
     value=king  &lt;br /&gt;
 [/filter]&lt;br /&gt;
the first expression will be true if a card colour is ‘spades OR diamonds’. It would make no  &lt;br /&gt;
sense to state they should be ‘spades AND diamonds’, of course.  &lt;br /&gt;
In many languages, you must specify how criteria combine using the special keywords ‘OR’  &lt;br /&gt;
and ‘AND’. In WML, you can do so, but most often, you’re not requested to do so. Writing  &lt;br /&gt;
explicitly the logical operators would give something like that:&lt;br /&gt;
 [filter]  &lt;br /&gt;
     [and]  &lt;br /&gt;
         colour=spades  &lt;br /&gt;
         [or]  &lt;br /&gt;
             colour=diamonds  &lt;br /&gt;
         [/or]  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 &lt;br /&gt;
     [and]  &lt;br /&gt;
         value=king  &lt;br /&gt;
     [/and]  &lt;br /&gt;
 [/filter]&lt;br /&gt;
or in natural speech: “is card (colour=spades OR colour=diamonds) AND value=king ?” Note  &lt;br /&gt;
here the use of parenthesis. As in algebra, they mean their content must be evaluated prior to  &lt;br /&gt;
apply the last criterion.  &lt;br /&gt;
'''[and]''' and  '''[or]''' subtags are WML equivalents of parenthesis. They are not mandatory (like in some other languages), and this is a cool feature, but can be misleading in complex filters.  &lt;br /&gt;
The rule is:  &lt;br /&gt;
* listed criteria are ''ANDed'', in other words, they must all be true for the object to match the filter.  &lt;br /&gt;
* comma separated lists in a criterion are equivalent to ''ORed'' criteria. &amp;lt;br&amp;gt;In other words, one only is enough for the object to match the filter.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
'''There are some things important to note:'''&lt;br /&gt;
&lt;br /&gt;
* A complex filter can always be split into simpler filters applied in chain, each filter taking as starting set the result set of the former one. In our example, we applied the filter « value=king » to the result set of filter « color=spades ». This is important when building or debugging filters, because complex ones can easily be reduced to a chain of simpler ones.&lt;br /&gt;
&lt;br /&gt;
* Criteria order is not important from a logical point of view. We could have searched the kings first, obtaining the four kings in our result set, and the card of color spade next. The final result is the same. But in WML, for some reasons we shall study later, order can be important.&lt;br /&gt;
&lt;br /&gt;
* Result sets can contain any number of objects. One can’t assume the result set of our filter will contain a single card ‘THE king of spades’. A human being would probably stop the search when finding a king of spades, but filters don’t. If our starting card packet is not a complete set (some cards were lost, a cheater introduced some more, or anything else), you’ll find one, none or many kings of spades. It’s a common error in WML to assume filters will select a single object.&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; &lt;br /&gt;
* Any unit or location will match an empty filter like this one:  &lt;br /&gt;
 [event]  &lt;br /&gt;
     name=moveto  &lt;br /&gt;
        [filter]  &lt;br /&gt;
        [/filter]  &lt;br /&gt;
     …  &lt;br /&gt;
 [/event]&lt;br /&gt;
This event will be triggered on every move of every unit on the map.&lt;br /&gt;
&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt; One can be sure only when filtering with ID’s because they are unique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Here now are two versions of the same action, using filters and not.'''  &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]  &lt;br /&gt;
This moves to side 1 all side 2 units except orcs. Please note how filter syntax is after all very close to natural speech. This is why we shall see a good way to design complex filters is writing an accurate sentence describing them first.  &lt;br /&gt;
Using no filter (and assuming ‘all_units’ is an array containing all created units in a scenario) we should write :  &lt;br /&gt;
 {FOREACH all_units i}  &lt;br /&gt;
     [if]  &lt;br /&gt;
         [variable]  &lt;br /&gt;
             name= all_units[$i].side  &lt;br /&gt;
             equals=2  &lt;br /&gt;
         [/variable]  &lt;br /&gt;
         [and]  &lt;br /&gt;
             [variable]  &lt;br /&gt;
                 name= all_units[$i].race  &lt;br /&gt;
                 not_equals=orc  &lt;br /&gt;
             [/variable]  &lt;br /&gt;
         [/and]  &lt;br /&gt;
         [then]  &lt;br /&gt;
             [set_variable]  &lt;br /&gt;
                 name= all_units[$i].side  &lt;br /&gt;
                 value=1  &lt;br /&gt;
             [/set_variable]  &lt;br /&gt;
             [unstore_unit]  &lt;br /&gt;
                 variable= all_units[$i]  &lt;br /&gt;
             [/unstore_unit]  &lt;br /&gt;
         [/then]  &lt;br /&gt;
     [/if]  &lt;br /&gt;
     {NEXT i}  &lt;br /&gt;
Of course, the first version is much more concise. One should mark :  &lt;br /&gt;
* Filters are hidden loops&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt; fetching all elements of the starting set.  &lt;br /&gt;
* Criteria composition is more explicit in the second version. We have here an [and] tag which is missing in the first one. It shows clearly both condition must be met. In filters, the [and] tag is most often implicit, as we already seen.&lt;br /&gt;
________________________________________&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;sup&amp;gt;2) &amp;lt;/sup&amp;gt;Internally, it’s not always the case, but we’ve not to deal with internal implementations.&amp;lt;br&amp;gt;Conceptually, filters can always be seen as hidden loops.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, a question arises : where are the starting and result sets we talked about? They show nowhere. The reply is most often we don’t need to see them, because we don’t need to create result sets explicitly. We need to use them to specify actions targets or conditions. In the '''‘modify_unit’''' example, we apply the action « change side » to the result set of the filter and then need it no more.&lt;br /&gt;
The starting set is implicit too. Most of time, it’s the larger available set of objects : i.e. all created units (sometimes including the recall list) or all hexes in the map. In the '''moveto''' event, it contains only the moving unit.&lt;br /&gt;
Once again, we are not telling these sets really exist in Wesnoth engine code. But these are an accurate model of how the filters work in WML.&lt;br /&gt;
&lt;br /&gt;
=== Result sets and arrays. === &lt;br /&gt;
A good way to get explicitly the result set is to use the '''‘store_...’''' tags. These actions create  &lt;br /&gt;
arrays containing the result set of the filter they take as parameter. This is very useful in many ways. The common use is of course to store units and locations for some processing or later use. But one can use this to split complex filters and inspect intermediate results. The former '''‘modify_unit’''' example could be written as:  &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp1  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         side=2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [store_unit]  &lt;br /&gt;
     variable=temp2  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp1  &lt;br /&gt;
         [not]  &lt;br /&gt;
             race=orc  &lt;br /&gt;
         [/not]  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
 [/store_unit]  &lt;br /&gt;
 &lt;br /&gt;
 [modify_unit]  &lt;br /&gt;
     [filter]  &lt;br /&gt;
         find_in=temp2  &lt;br /&gt;
     [/filter]  &lt;br /&gt;
     side=1  &lt;br /&gt;
 [/modify_unit]&lt;br /&gt;
This trivial example shows not only how to debug complex filters (inspecting the content of ''temp1'' and ''temp2'' arrays), but how to specify a starting set with the '''‘find_in’''' key. Without it, the second '''‘store_unit’''' tag would store all units except orcs. With it, we ask to apply the filter to the content of ''temp1'' array &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; (all side 2 units). It’s like our card example where we selected the spades first and next the king(s) in the spades stack.  &lt;br /&gt;
The '''‘find-in’''' key is really precious in many cases : often it’s easier to build explicitly an array containing the objects we want to select than creating complex filters to retrieve them.  &lt;br /&gt;
For example, if we want dying units to drop weapons and other units to retrieve them, it can be very difficult to create a filter allowing to select locations where the weapons where dropped. Instead, we can build an array containing their locations (and other informations at will). Since this array have x and y members, the '''find_in''' key of a location filter can use it&amp;lt;sup&amp;gt;3)&amp;lt;/sup&amp;gt;. It would be:&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=47559</id>
		<title>Guide to UMC Content</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=47559"/>
		<updated>2012-10-09T19:31:54Z</updated>

		<summary type="html">&lt;p&gt;Pyrophorus: /* Salt Wars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is a guide to the current (1.10.x/1.11.x) UMC campaigns for players. It aims to provide all the information not only about the story, but also about completion, difficulty and playing style of the campaign. See http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37476 for further information, for currently non-available UMC-content please refer to http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36733. Please edit, it is a wiki.''&lt;br /&gt;
&lt;br /&gt;
=== Blueprint ===&lt;br /&gt;
&lt;br /&gt;
'''Status:'''&lt;br /&gt;
* Broken = Does not work at all&lt;br /&gt;
* Incomplete = Partially written, no progress&lt;br /&gt;
* WIP = Partially written, progress&lt;br /&gt;
* Complete = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
* Finished = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
'''Length:'''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
Please note: Often campaigns introducing new mechanics are listed as expert level on the add-on server, here difficulty means the raw difficulty after the mechanics are understood.&lt;br /&gt;
&lt;br /&gt;
* Unbalanced = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erraticly from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
* Easy&lt;br /&gt;
* Normal&lt;br /&gt;
* Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones.&lt;br /&gt;
&lt;br /&gt;
* Skirmish = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
* Dungeon = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
* RPG = role playing game elements such as talking with non-player-characters, item collection, dependency on a party of very few adventurers without or limited recruits&lt;br /&gt;
* Survival = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
* Large Battle = Eastern Flank in Northern Rebirth, Civil War in Son of the Black-Eye&lt;br /&gt;
* Simulation = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
* Boss battle = a recurring feature of Invasion of the Unknown (basically a triggered event creating a solvable puzzle for the player)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:'''&lt;br /&gt;
&lt;br /&gt;
* Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
&lt;br /&gt;
* Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.10.x - stable ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.10.x stable version.''&lt;br /&gt;
&lt;br /&gt;
=== A Story of the Northlands ===&lt;br /&gt;
&lt;br /&gt;
''A story of life and death in a remote village of the Northlands. Your village has been overrun by an orcish raid. You fight for its freedom while you wait for help to arrive.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' zepko&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios + 1 dialog-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + additions: you play with a custom faction of outlaws and with a custom party of loyalist knights.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.0&lt;br /&gt;
&lt;br /&gt;
=== A Vision Blinded ===&lt;br /&gt;
&lt;br /&gt;
''Defend the northern forest against what appeared like a routine orcish raid, and unravel the greater conspiracies that lie below its waves.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' LemonTea&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 playable scenarios + 1 dialog-only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves (+ Trolls, Outlaws)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.6&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463&amp;amp;hilit=a+vision+blinded&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.8.23a&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
=== Besieged Druids ===&lt;br /&gt;
&lt;br /&gt;
''A elvish school for druids comes under attack by goblins. It seems more than just a routine raid; is there something more sinister behind this attack? - In Beseiged Druids, you control Eärendil, the surviving teacher at the school, and the many and varied initiates. Not all of these are ordinary students; many have been experimenting with other forms of magic, while others are simply overachievers in some area of study. Unfortunately, they are not especially good at combat, at least initially. Together with a very small contingent of surviving guards, it is up to these students to save the island of Aleron from disaster.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Celtic Minstrel&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/DruidSiege/en_US/celmin-druid-siege.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37342&lt;br /&gt;
&lt;br /&gt;
=== Cities of the Frontier ===&lt;br /&gt;
&lt;br /&gt;
''Settle a new town in the wilds north of the Great River.''&lt;br /&gt;
	&lt;br /&gt;
''This campaign makes several changes to the standard Wesnoth game mechanics, and focuses on city-building and gold management.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' esci&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Not fixed, approximately 6-10 seasons of 36 turns each&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Simulation, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalist&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Cities_of_the_Frontier/en_US/Cities_of_the_Frontier.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.5.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36004&lt;br /&gt;
&lt;br /&gt;
=== Count Kromire ===&lt;br /&gt;
&lt;br /&gt;
''You are the blood son of a vampire lord, however when the might of the celestial crusades comes knocking, and your father is slain, you flee your lands. However you intend to return, to restore the lands of Kromire to the Kromires, to avenge your father, and most importantly, to make sure that no celestial ever dares come into your mountains again.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' currently none&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Myths, Vampires&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=21560&lt;br /&gt;
&lt;br /&gt;
=== Elvish Dynasty RPG ===&lt;br /&gt;
&lt;br /&gt;
''You are the new ruler of an elvish kingdom! Can you lead your people to glory? This campaign is highly randomized so it will be different every time you play!''&lt;br /&gt;
&lt;br /&gt;
''Sequel to Ooze Mini-Campaign''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' spencelack&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 years, in each year choice between dialogue and fighting scenario (selected out of a large pool of possible scenarios)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.9b&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=28627&lt;br /&gt;
&lt;br /&gt;
=== Fate of a Princess ===&lt;br /&gt;
&lt;br /&gt;
''Part I: Baldres, a notorious robber baron, flees Wesnoth with his followers and sets off into the northlands to evade the king's justice. The baron's deeds and misdeeds are to change the balance of power between orcs and non-orcs throughout the northlands, and will carry consequences long after his eventual death.''&lt;br /&gt;
&lt;br /&gt;
''Part II: The Greenwood elves face a crisis which demands the return of the queen's estranged half-elven half-sister, Baldres' daughter. Two brave young elves must make a perilous journey to find her and bring her back to her former home. If they fail, the whole northlands will be engulfed in war with the resurgent orcs...''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne, mich, simonsmith&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26-29 scenarios (some dialogue-only), 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play two different, unique cross-faction combinations in each part.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Fate_of_a_Princess/en_US/Fate_of_a_Princess.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.17&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.12 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26327&lt;br /&gt;
&lt;br /&gt;
=== Galuldur's First Journey ===&lt;br /&gt;
&lt;br /&gt;
''While the belligerence of orcs is nothing new, their intensifying attacks on a fledgling colony of elves in Pindir Forest begin to show signs of a deeper malice, forcing Galuldur, the young son of the colony's adventurous founder Galur, to venture out of his forest's friendly trees in search of help. His simple errand quickly turns into a frantic quest to unearth the roots of the mysterious evil threatening his people. As you lead him through unknown lands, Galuldur, forced to match wits with unexpected adversaries at nearly every turn in a desperate attempt to save his world, quickly learns that the world is neither a friendly nor a simple place.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8-9 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Galuldur/en_US/Galuldur.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31895&lt;br /&gt;
&lt;br /&gt;
=== Grnk the Mighty ===&lt;br /&gt;
&lt;br /&gt;
''All his life, puny little goblin Grnk the Frail had been dreaming about leaving the orcs and starting a better life.  When he finally arrives in the human town of Shmaltupp, he realizes that the world is not as black and white as he had imagined.  He also discovers that he is no ordinary goblin.  Follow Grnk the Frail on his path to becoming Grnk the Mighty.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mattsc&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Part I complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 13 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, changing (no standard army building gameplay)&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Grnk/en_US/Grnk.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.5&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.9.5 or later&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34970&lt;br /&gt;
&lt;br /&gt;
=== Invasion from the Unknown ===&lt;br /&gt;
&lt;br /&gt;
''Episode I - Seeking the Light: Long after the Fall, the last forest elves are forced to abandon their safe valley, and find themselves resorting to the dark means of necromancy in order to survive the perils and challenges of this new harsh world. May they finally free the Great Continent from its chaos, or perish in the foolish attempt of restoring peace and life to the lands.''&lt;br /&gt;
&lt;br /&gt;
''Episode II - Armageddon: As the shadow of Chaos covers the entire continent, an assorted group of foolish heroes prepares a counter-attack to the Empire, with one unique goal in their minds: defeat the evil Emperor, whoever it is. Lead these courageous living and non-living warriors to victory, and rediscover lost secrets of the history.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' shadowmaster &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Espreon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios in two episodes&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Boss battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Unique. You play Elves, Undead and in the 2nd part Aragwaithi.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.90.6&lt;br /&gt;
&lt;br /&gt;
''Note (taptap): Despite its acknowledged flaws (generic hero, plot holes, deus ex machina moments, gameplay issues in the 2nd part) this is undoubtedly the most iconic campaign in UMC. It single-handedly redefines the elvish history and sketches a cosmology for the ages after the fall. With the Chaos empire and its various allies it introduces an era worth of factions to single-player play. At the same time it features some of the most beautiful maps in Wesnoth and stunning art on par with mainline campaigns.''&lt;br /&gt;
&lt;br /&gt;
=== Panther Lord ===&lt;br /&gt;
&lt;br /&gt;
''The Imperialists ambitions of pushing into the Sea States have been repeatedly thwarted and now they turn their attentions elsewhere. You are an outcast Darklander now living as a mercenary in the Sea States and the rumors you hear indicate that they will be coming to your people. Though an outcast you do not wish to see them subjugated. The spirit whose friendship caused you to be an outcast has a plan that might allow you to save them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 14 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Darklanders (+ a wide variety of mercenaries)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.2&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34318&lt;br /&gt;
&lt;br /&gt;
=== Return of the Monster ===&lt;br /&gt;
&lt;br /&gt;
''It was time for Amailoss, born from the naga queen's last egg, to leave home. Time for him to grow into a leader in his own right, and eventually become the guardian and leader of another naga city. But along the way, he became friends with an unusual mud-crawler, they met a strange young monster, discovered that a spirit had escaped from an orc prison, and the mystery of that spirit became a grave challenge for Amailoss and the many races in the region....''&lt;br /&gt;
&lt;br /&gt;
''A naga campaign, involving elves, orcs, saurians, turtle-like races, and some monsters.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' SkyOne&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 16 playable, 2 dialog scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default with additions. You play a custom naga faction and carapaces (a turtle-like race).&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/Return_of_the_Monster/en_US/Return_of_the_Monster.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.7.1&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.10.x&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36438&lt;br /&gt;
&lt;br /&gt;
=== Return to Noelren ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 26 scenarios + 7 cut scenes&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pyrophorus&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''A story in the first Dark Age of Wesnoth. See how various heroes stick together to shun the threat of black magics, restore the secret kingdom of Noelren and install Garard I on the throne of Wesnoth. This campaign features complex scenarios, unusual objectives and units, emphasizing more on story and adventures than hardcore fighting.''&lt;br /&gt;
&lt;br /&gt;
'''Version: ''' 0.7&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' BfW 1.10 (not tested on 1.11)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy, unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, RPG, Large Battle, Simulation&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + custom units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=34685#p501026&lt;br /&gt;
&lt;br /&gt;
=== Salt Wars ===&lt;br /&gt;
&lt;br /&gt;
''Introductory campaign for the Era of Four Moons.''&lt;br /&gt;
&lt;br /&gt;
''As an officer of one of the Sea States you must defend your organization from aggressive rivals.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Velensk &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Lavender&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Era of Four Moons, Sea States&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.1&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31498&lt;br /&gt;
&lt;br /&gt;
=== The Dark Hordes ===&lt;br /&gt;
&lt;br /&gt;
'''Status:'''&lt;br /&gt;
&lt;br /&gt;
* Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11/?&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
&lt;br /&gt;
'''Version: '''&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:'''&lt;br /&gt;
&lt;br /&gt;
'''Style:''' &lt;br /&gt;
&lt;br /&gt;
* Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:'''&lt;br /&gt;
&lt;br /&gt;
* Default undead&lt;br /&gt;
&lt;br /&gt;
'''Custom Units:'''&lt;br /&gt;
&lt;br /&gt;
[[http://units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Unit database]]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:'''&lt;br /&gt;
&lt;br /&gt;
* [[TheDarkHordes]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
&lt;br /&gt;
* [[http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]]&lt;br /&gt;
&lt;br /&gt;
=== The Earth's Gut ===&lt;br /&gt;
&lt;br /&gt;
''The year is 515YW. You are the young dwarven leader Hamel. Your tribe in the caves of Knalga is under pressure from its enemies, and resources are growing scarce. In order to forge the weapons required to resist your enemies, you must set forth and collect what ores and minerals remain.''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Anonymissimus&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 21 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, dwarves.&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Earths_Gut/en_US/the_earths_gut.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.2.11&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800&lt;br /&gt;
&lt;br /&gt;
'''Note''' This campaign is a &amp;quot;Dwarvish dungeon crawler&amp;quot; and is intended to be challenging for experienced players on hard whilst suitably easy on easy.&lt;br /&gt;
&lt;br /&gt;
=== The Epic of Vaniyera ===&lt;br /&gt;
&lt;br /&gt;
''The expansionist Lavinian Legion, led by the Imperator himself, has invaded the northern forests of the Sidhe. It is up to the young Vaniyera to push its armies back from the border...''&lt;br /&gt;
&lt;br /&gt;
'''Author:'''  oreb, turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' unwiseowl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 6 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard (Don't be fooled by &amp;quot;novice level&amp;quot; in the campaign description, this one is very hard.)&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.9.0&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19490&lt;br /&gt;
&lt;br /&gt;
=== The Fall of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
''As the beloved human empire of Wesnoth becomes lazy and arrogant in its peaceful state of happiness, Emperor Dantair demands the creation of another sun in a bid to destroy all evil. Or is it all for a different purpose? A man named Alitar sees it that way, and now he must survive the most evil inhabited lands if he is to stop chaos from rising, and Wesnoth from falling... This is the story of The Fall of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Pewskeepski&lt;br /&gt;
&lt;br /&gt;
'''Status:''' 1st part complete, 2nd WIP.&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Outlaws&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Fall_of_Wesnoth/en_US/The_Fall_of_Wesnoth-1.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.8&lt;br /&gt;
&lt;br /&gt;
=== The Founding of Borstep ===&lt;br /&gt;
&lt;br /&gt;
''The chieftain of your tribe has become decadent and weak. Take over, and lead your people to a better home--whether it is already occupied or not. The Northlands in year 9W are a barbaric place, but anyone who stands in your way will learn the power of orcs!''	&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 10 and 1 dialogue only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Northerners&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Founding_of_Borstep/en_US/The_Founding_of_Borstep.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1b&lt;br /&gt;
&lt;br /&gt;
''Note(Kanzil): I find the protagonist hard to sympathise with. Also, most scenarios contain interesting twists. For example, in one, each time you killed a boar it gives you extra health.''&lt;br /&gt;
&lt;br /&gt;
''Note(beetlenaut--author): In most Orcish campaigns the leader is heroic or just wants peace. Krag-Ubor wants plunder and battle like all enemy Orcs in other campaigns. I '''hope''' you don't sympathize too strongly, but I don't think you need to in order to enjoy the game play.''&lt;br /&gt;
&lt;br /&gt;
=== The Sojournings of Grog ===&lt;br /&gt;
&lt;br /&gt;
''Grog (as starred in Under the Burning Suns) goes home.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Peter Christopher, Thomas Hockings &lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Elvish_Hunter&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios in 2 parts&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon, Large Battle&lt;br /&gt;
&lt;br /&gt;
'''[http://units.wesnoth.org/1.10/The_Sojournings_of_Grog/en_US/The_Sojournings_of_Grog.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default. Most of the time you play trolls and some desert elves accompanying Grog.&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 3.0.1&lt;br /&gt;
&lt;br /&gt;
=== Up from Slavery ===&lt;br /&gt;
&lt;br /&gt;
''Well, the orcs don't know exactly what year it is. They are captives in the imperial city of Lavinium, gladiators performing for the emperor Optus Maximus. All it will take, however, is one orc to lead his people to freedom. The Samnis called Sparxus may be that orc.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' turin&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' unwiseowl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 7 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Arena (= No recruit, small group gladiator fights)&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Imperial Era, Orcei Gladiatores&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.6.0&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.11.x - development ==&lt;br /&gt;
&lt;br /&gt;
''Campaigns available in the 1.11.x development version.''&lt;br /&gt;
&lt;br /&gt;
''Please note: Battle for Wesnoth 1.11.0 features a bug that messes up the selection of difficulty levels.''&lt;br /&gt;
&lt;br /&gt;
=== Antar, Son of Rheor ===&lt;br /&gt;
&lt;br /&gt;
''This is the story about a young Lord and his first mission; sent by his father the young Lord Antar has to relieve his neighbours; he has to convince the Elves and Dwarves to ally him; he has to fight against hordes of Orcs and Endless Undead; and finally he has to defeat Mal Kazur, the mastermind who is behind all the evil.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 8 playable scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists (feat. fencer as main hero + various allies)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.8.23b&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' http://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=36075&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;/div&gt;</summary>
		<author><name>Pyrophorus</name></author>
		
	</entry>
</feed>