<?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=Egallager</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=Egallager"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Egallager"/>
	<updated>2026-05-24T10:28:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=WesnothTranslations&amp;diff=74899</id>
		<title>WesnothTranslations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=WesnothTranslations&amp;diff=74899"/>
		<updated>2026-03-13T09:26:02Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Mailing List */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Translations  ==&lt;br /&gt;
&lt;br /&gt;
Wesnoth is currently being translated into the following languages. These languages are active, with maintainer.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Translation !! Maintainer !! Contact&lt;br /&gt;
|-&lt;br /&gt;
| [[AncientGreekTranslation|Ancient Greek]] || Mejri Ziad (Hermestrismi)|| [mailto:beja.comuneATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[ArabicTranslation|Arabic]] || Mejri Ziad (Hermestrismi)|| [mailto:beja.comuneATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[BengaliTranslation|Bengali]] || Subhraman Sarkar (LumiousE) || lumious_e on Discord&lt;br /&gt;
|-&lt;br /&gt;
| [[BulgarianTranslation|Bulgarian]] || Ivan Petrov (TheWhiteKnight) || [mailto:vankata_petrovATabvDOTbg]&lt;br /&gt;
|-&lt;br /&gt;
| [[CatalanTranslation|Catalan]] || Arnau Vàzquez Palma || [mailto:arnauvpATmurenaDOTio]&lt;br /&gt;
|-&lt;br /&gt;
| [[ChineseTranslation|Chinese]] || CloudiDust || [mailto:cloudidustATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[ChineseTaiwanTranslation|Chinese (Taiwan)]] || 楊綮銘 (Taiwan) || [mailto:steven2880ATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[CzechTranslation|Czech]] || Michal Žejdl || [mailto:lachimATemerDOTcz]&lt;br /&gt;
|-&lt;br /&gt;
| [[DutchTranslation|Dutch]] || Merijn de Vet || [mailto:merijndevetAThotmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[EnglishGBTranslation|English (GB)]] || Wedge009 || [mailto:wedge009ATwedge009DOTnet]&lt;br /&gt;
|-&lt;br /&gt;
| [[EnglishShawTranslation|English (Shaw)]] || Arc Riley || [mailto:ArcRileyATubuntuDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[Esperanto_translation|Esperanto]] || Mariano Street (mctpyt) || [mailto:mctpytATprotonDOTme]&lt;br /&gt;
|-&lt;br /&gt;
| [[FinnishTranslation|Finnish]] || Jaakko Saarikko (styxnix) || [mailto:jaakkoDOTsaarikkoATprotonmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[FrenchTranslation|French]] || demario || [mailto:wesnothfr-request@lists.tuxfamily.org?subject=subscribe mailing list]&lt;br /&gt;
|-&lt;br /&gt;
| [[GermanTranslation|German]] || Aaron Winter (Bitron) || &lt;br /&gt;
|-&lt;br /&gt;
| [[HungarianTranslation|Hungarian]] || Berda Jenő (bigbilly) || [mailto:big4billyATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[IndonesianTranslation|Indonesian]] || Irsyad Musthafa || [mailto:sevennightmareATtutanotaDOTde]&lt;br /&gt;
|-&lt;br /&gt;
| [[ItalianTranslation|Italian]] || Antonio Rosella || [mailto:arosellaATyahooDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[JapaneseTranslation|Japanese]] || Hironori Fujimoto (RatArmy) || [mailto:broadbarredfirefishATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[KoreanTranslation|Korean]] || mistzone || [mailto:drier22ATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[LatinTranslation|Latin]] || Daniel Faustmann || [mailto:donnerstag.freitag213@gmail.com]&lt;br /&gt;
|-&lt;br /&gt;
| [[NorwegianTranslation|Norwegian]] || Bloodaxe || [mailto:bloodaxenor@protonmail.com]&lt;br /&gt;
|-&lt;br /&gt;
| [[PolishTranslation|Polish]] || ForPeace || [https://forums.wesnoth.org/viewtopic.php?f=7&amp;amp;t=3796 forum thread]&lt;br /&gt;
|-&lt;br /&gt;
| [[PortugueseTranslation|Portuguese Brazilian]] || Andrei Machado || [mailto:andreisp.machadoATyahooDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[PortugueseContinentalTranslation|Portuguese (European)]] || trewe || [mailto:sjrs456ATyahooDOTfr]&lt;br /&gt;
|-&lt;br /&gt;
| [[RussianTranslation|Russian]] || Artem Khrapov || ([[User:kabachuha|kabachuha]]) [mailto:artemkhrapov2001ATyandexDOTru]&lt;br /&gt;
|-&lt;br /&gt;
| [[Scottish_Gaelic_Translation|Scottish Gaelic]] || GunChleoc || [mailto:fiosAIGforamnagaidhligDOTnet]&lt;br /&gt;
|-&lt;br /&gt;
| [[SlovakTranslation#Preklad|Slovak]] || Stanislav Hoferek || [mailto:shoferek@gmail.com]&lt;br /&gt;
|-&lt;br /&gt;
| [[SpanishTranslation|Spanish]] || Sebastián Lecchini (Sebas38760) || [mailto:sebas38760@gmail.com]&lt;br /&gt;
|-&lt;br /&gt;
| [[SwedishTranslation|Swedish]] || Alex Alowersson (fluxbird) || [mailto:alexalowersonATgmailDOTcom]&lt;br /&gt;
|-&lt;br /&gt;
| [[TurkishTranslation|Turkish]] || Nilgün Belma Bugüner || [mailto:nilgunATbelgelerDOTorg]&lt;br /&gt;
|-&lt;br /&gt;
| [[UkrainianTranslation|Ukrainian]] || Oleksii Okhrimenko (lexa04) || Discord: amakri Email: [mailto:ohrimaleATgmailDOTcom]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Currently inactive translations. If you wish to improve some of these languages (or one of the above maintainers is not responsive), contact Ivanovic on the [https://wiki.wesnoth.org/Support Wesnoth Discord channel].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Translation !! Maintainer !! Contact&lt;br /&gt;
|-&lt;br /&gt;
| [[AfrikaansTranslation|Afrikaans]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[BasqueTranslation|Basque]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[BurmeseTranslation|Burmese]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[CroatianTranslation|Croatian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[DanishTranslation|Danish]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[GalicianTranslation|Galician]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[GreekTranslation|Greek]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[HebrewTranslation|Hebrew]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[IcelandicTranslation|Icelandic]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[IrishTranslation|Irish]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[LatvianTranslation|Latvian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[LithuanianTranslation|Lithuanian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[MarathiTranslation|Marathi]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[MacedonianTranslation|Macedonian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[OldEnglishTranslation|Old English]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[RACVTranslation|RACV]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[RomanianTranslation|Romanian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[SerbianTranslation|Serbian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[SlovenianTranslation|Slovenian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[SpanishLatinAmericanTranslation|Spanish (Latin American)]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[ValencianTranslation|Valencian]] || None || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[VietnameseTranslation|Vietnamese]] || None || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
There now is a mailing list dedicated to translation matters. It is mainly intended to be used for informing translation maintainers about important changes, to announce string freezes and other special things. Everyone is free to subscribe to this list.&lt;br /&gt;
&lt;br /&gt;
* [https://groups.io/g/wesnoth-translations From February 2025]&lt;br /&gt;
* [https://listengine.tuxfamily.org/wesnoth.org/i18n/ List info, how to subscribe, and archives from April 2022]&lt;br /&gt;
* [https://mailman.wesnoth.org/pipermail/i18n/ Old list archives (up until April 2022)]&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that this list is not meant for discussing changes for one single translation but instead subjects which are relevant to all translations.&lt;br /&gt;
&lt;br /&gt;
==  See also  ==&lt;br /&gt;
&lt;br /&gt;
* [[WesnothTranslationsHowTo]]&lt;br /&gt;
* [[ImageLocalization]]&lt;br /&gt;
* [[GetText]]&lt;br /&gt;
* [http://gettext.wesnoth.org Translations statistics (stable)]&lt;br /&gt;
* [http://gettext.wesnoth.org/index.php?version=trunk&amp;amp;package=alloff Translations statistics (development)]&lt;br /&gt;
* [[GettextForTranslators#For_add-ons|Translating User Made Campaigns and add-ons]]&lt;br /&gt;
* [[SpellingMistakes]]&lt;br /&gt;
* [[CharactersStorys| Character descriptions for Translators (Spoiler Warning)]]&lt;br /&gt;
* [[Poetry of Wesnoth Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Translations|*]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DescentIntoDarkness&amp;diff=74491</id>
		<title>DescentIntoDarkness</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DescentIntoDarkness&amp;diff=74491"/>
		<updated>2025-08-18T21:55:00Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Saving Parthyn */ wikify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Campaign-level notes ===&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;i&amp;gt;Descent into Darkness&amp;lt;/i&amp;gt; had a significant revision in version 1.14.7. This walkthrough is current as of version 1.16.6, so much of the advice here no longer applies to earlier versions. &lt;br /&gt;
&lt;br /&gt;
==== Recruitment Strategy ====&lt;br /&gt;
&lt;br /&gt;
Malin Keshar and Spectral Servant both have unique advancement paths in this campaign. When one of these units reaches its xp cap, you will be offered a choice of several possible &amp;quot;AMLA&amp;quot; upgrades, such as +1 melee damage, +1 ranged damage, or various special abilities, after which your xp will return to zero with a higher cap. Sometimes these AMLA advancements will be accompanied with a level increase and a significant boost in overall stats, and sometimes not. They will generally not be accompanied by healing to full hp. The exact xp requirements differ based on difficulty level and the order in which you select the upgrades. They can continue to accumulate AMLA upgrades after reaching lvl 3. &lt;br /&gt;
In total, these units will end up requiring much more xp to reach level 3 than an ordinary dark adept or ghost would, but they will also end up being far more powerful due to all the cumulative upgrades they get along the way. For example, in one playthrough on Hard difficulty Malin required a total of 105 xp to reach lvl 2, and another 313 xp to reach lvl 3. Spectral Servant took 50 xp to reach lvl 2 and another 264 to reach lvl 3. &lt;br /&gt;
This is a slight spoiler, but there will be a scenario toward the end of the campaign where Malin will need to fight a large number of enemies solo and then even more enemies with very few units to help him, so getting these two units, especially Malin, as powerful as possible is a good investment that you will need to start working on immediately. The Vitalize upgrade to Malin's melee weapon will also be very useful to help him survive better when fighting solo. At a key point Malin will need to tank a very large amount of arcane damage, so it is not wise to take too many of the upgrades that include the 'minor' cost of increasing vulnerability to arcane. &lt;br /&gt;
&lt;br /&gt;
You'll be introduced to ''Walking Corpses'' very early on, and some tend to forget about them in favor of snazzy and more capable units - but never discount how their numbers can add up later on with the plague ability, especially when you want to protect those high-level specialist units of yours. They can level up to Soulless, but it is almost always more cost effective to just recruit fresh Walking Corpses in the next scenario rather than recalling a Soulless. &lt;br /&gt;
&lt;br /&gt;
''Ghosts'' will be a useful part of your force - mostly when leveled up. Prefer them for recruitment even if initially they require some help from other units, and allocate enough experience to make them into Wraiths or Shadows. Both these units are useful in general when playing undead, but in this particularly campaign it is extremely beneficial to have at least 4 Shadows/Nightgaunts available for recall as soon as you can manage it.&lt;br /&gt;
&lt;br /&gt;
''Bats'' are less useful in this campaign as in some other cases, as your Ghost-based units are just as mobile and not much slower; and sometimes invisible to boot.&lt;br /&gt;
&lt;br /&gt;
''Dark Adepts'' are not available in this campaign, so your only option for ranged damage will be skeleton archers, Darken Volk, and Malin himself. &lt;br /&gt;
&lt;br /&gt;
Darken Volk will accompany you in many of your scenarios. He starts at level 2, and getting him up to level 3 will be very helpful, given how limited your other options for ranged damage are. &lt;br /&gt;
&lt;br /&gt;
Skeletons will be the backbone of your army. You will face some very scary orcish crossbowmen and human mages who can quickly wipe out your undead units with fire/arcane attacks, and skeletons and their advancements will be your best tools for taking them out asap to minimize the damage they can cause. Skeletons' high blade resistance also makes them very effective for going toe to toe with even lvl 3 orcish warlords.&lt;br /&gt;
&lt;br /&gt;
=== Saving Parthyn ===&lt;br /&gt;
* Objective: Defend the fort for two nights&lt;br /&gt;
* (Alternative Objective: Kill the orcish leader)&lt;br /&gt;
* Lose if: Deaths of [[Malin Keshar|Malin]], [[Dela Keshar|Dela]], or Drogan, OR Orcs reach the outskirts of Parthyn&lt;br /&gt;
* Turns: 13&lt;br /&gt;
* Starting units: Malin Keshar, two Spearmen and a Bowman&lt;br /&gt;
* New Recruitment options: Walking Corpse (8 Gold).&lt;br /&gt;
&lt;br /&gt;
Your starting level is a small section of the Abez, with a ford between the South and Northern side. Your starting fort is just to its south, the L2 Orc Warrior enemy leader's - slightly farther away to its north. To your west, Drogan occupies another fort.&lt;br /&gt;
&lt;br /&gt;
The orc leader has more initial gold than you, and he will recruit some lvl 2 Crossbowmen, while you have only your 3 loyal lvl 1 units and lvl 0 Walking Corpses. So, you will have to play to your strengths, which are terrain, numbers, and the plague ability.   &lt;br /&gt;
&lt;br /&gt;
Make sure that your units occupy all of the favorable terrain on your side of the river and force the orcs to fight you from the water whenever possible. Rotate your walking corpses to the front during the night and save your loyal lawful units for daytime to maximize their damage output. Actually killing the enemy leader is extremely difficult on the highest difficulty, so you can play very defensively and let Drogan's reinforcements keep rushing past you to fight the orcs in the water. Since your units all have zero upkeep, you can still get a decent carryover by stealing all of your allies' villages in the first few turns and only recruiting ~8-10 Walking Corpses, which should be all you need if you play defensively and maximize your plague ability. &lt;br /&gt;
&lt;br /&gt;
None of your loyal units will follow you to the next scenario, and even if you do level up a Walking Corpse, it will max out as a lvl 1 Soulless and will not be worth recalling later, so you should focus on getting Malin as many kills as possible. It will still be useful to kill a couple enemies with Walking Corpses in order to generate reinforcements with their Plague ability. Focus your Walking Corpses' attacks on the archers and crossbowmen, as it can be suicidal to have them directly attack grunts. &lt;br /&gt;
&lt;br /&gt;
There are 3 objects on this map that trigger events. It will take the orcs several turns to reach you, so that will give you time to trigger all of them and also steal your allies' villages. The objects and their events are: &lt;br /&gt;
&lt;br /&gt;
1. Book at 20.17 - If Malin steps on it, gives +4xp&lt;br /&gt;
&lt;br /&gt;
2. White monolith at 30.15 - If Malin steps on it, gives +8xp&lt;br /&gt;
&lt;br /&gt;
3. Sunken boat at 31.9 - If a Walking Corpse steps on it, gives a swimmer-type Soulless unit. &lt;br /&gt;
&lt;br /&gt;
The Defeat condition says &amp;quot;Orcs reach the outskirts of Parthyn&amp;quot;. Mechanically, the &amp;quot;outskirts of Parthyn&amp;quot; are defined as an invisible vertical line marked by the signpost at 17.16 (hexes 17.13 - 17.20). If any orcish unit steps on a hex on or left of that line, you will immediately lose. This still gives you a lot of wiggle room, as you can still win if the orcs overrun your starting keep, as long as you don't let them get as far west as the signpost.&lt;br /&gt;
&lt;br /&gt;
=== A Peaceful Valley ===&lt;br /&gt;
* Objectives: Occupy all of the Goblin villages&lt;br /&gt;
* Lose if: Malin Keshar or Darken Volk die or time runs out&lt;br /&gt;
* Turns: 29/26/15 (easy/medium/hard)&lt;br /&gt;
* Starting units: Malin Keshar and Darken Volk&lt;br /&gt;
* New Recruitment options: Vampire Bat (13 Gold)&lt;br /&gt;
&lt;br /&gt;
In this small map you are tasked with occupying a Goblin settlement. There are 6 total villages on the map, and you win the scenario the moment you own all of them, even if you have not yet defeated the enemy leader. &lt;br /&gt;
&lt;br /&gt;
The settlement is guarded by an L2 Goblin Knight in the mid-North of the level, who recruits (Goblin) Wolf Riders, Goblin Impalers and Goblin Rousers. He's not too rich, but don't underestimate him.&lt;br /&gt;
&lt;br /&gt;
The villages hold rather nasty surprises: 0 to 2 Goblins will spring out of each village you capture, ''including those that you recapture''. Thus the key is not to capture villages quickly, but rather to clear all defenders and kill the leader, allowing you to gang up on villages gradually. Ironically, this will allow you to capture all the villages more quickly than with a greedy approach. &lt;br /&gt;
&lt;br /&gt;
One exception to this could be if you captured the last 2-3 villages with bats all on the same turn, thus winning the scenario suddenly without having to fight any of the remaining goblins. But since there are so few villages on this map, the early finish bonus is not that high, so the extra xp from killing all the goblins will probably be more valuable to you than a few extra gold in carryover. &lt;br /&gt;
&lt;br /&gt;
In this level you will be able recruit Bats in addition to Walking Corpses. Bats are generally very useful creatures to have:&lt;br /&gt;
* They're effective scouts: Flying allows them to ignore otherwise-unfriendly terrain, and they have 8 (later 9) movement points.&lt;br /&gt;
* They're good at remote village capture&lt;br /&gt;
* While they aren't skirmishers, their mobility often makes it possible for them to fly around part of an enemy line and attack vulnerable units. They're similarly often able to flee to safety after having engaged.&lt;br /&gt;
* They're one of the few Undead-associated units which are not vulnerable to Arcane attacks.&lt;br /&gt;
... but in this scenario, they won't be useful to you: It's a small map, the villages are close rather than remote, and your L1 Vampire Bat will have a hard time with the spawning Goblin guards. You could theoretically recruit a Bat intending to just level it up for later recall, but there's XP to distribute elsewhere.&lt;br /&gt;
&lt;br /&gt;
If not Bats, then - it's the Walking Corpse horde again. They'll be up against units with low HP and damage, so a few of them could even take out a Goblin, especially with some terrain advantage. Caution is still advised, though. You can easily lose several Walking Corpses trying to wear down a healthy Goblin Impaler at night. Also, the replenishment of your ranks by the dead Goblins is important here - snowball your forces. Finally, place Walking Corpses as cheap captured-village guards to prevent retaking by a convergence of the Goblin forces. You'll appreciate the irony of the dead Goblins continuing the same guard duty they were assigned to before, only this time on your behalf.&lt;br /&gt;
&lt;br /&gt;
As you begin the level, Darken suggests you visit the swamp. Note that either Darken or Malin can do this, and it is usually easier to do it with Darken so that Malin can focus on recruiting the Walking Corpse horde. When Darken or Malin step onto a swamp hex, you'll be introduced to Ghouls - and get 3 of these for free. Get these into the line of fire ASAP, as your enemy has only melee attackers and you can quickly poison most of his army. &lt;br /&gt;
&lt;br /&gt;
The enemy leader will send out an attack wave, starting to hit you by turn 3 or so. In fact, the Goblin Knight leader ''himself'' is likely to join this raid, despite it being out of sight of its fort - something you may not be used to from other campaigns. He'll likely retreat soon enough (even if he's not badly hurt), so don't focus on him. You should have many Walking Corpses to set up a defensive line along the edge of the forested region to the North-West of your fort - this will give you a terrain advantage. Alternatively, you could let the enemy units come further South, into the forest, buying an extra turn before they hit you for a better defensive bonus for them. Anyway, if you support your WCs with Malin and Volken you should be fine.&lt;br /&gt;
&lt;br /&gt;
Your #1 focus in this scenario, like the last one, is feeding Malin xp. It will take a lot of kills to get him to level 2, but when you do he will get access to cold and arcane damage and a big damage output boost, which will make the next scenario much easier. Walking Corpses, ghouls, and bats will not be your most effective units later in the campaign, so all the xp from this level is best concentrated in Malin and Darken. &lt;br /&gt;
&lt;br /&gt;
There is a key at 7.9 and a cage at 4.12. If you have Malin first step on the key and then the cage, you will get a Walking Corpse and a Soulless for free. However, you probably won't need them to win this scenario, and the turns spent triggering this event will be better spent getting kills for Malin. &lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Not all Goblin village hexes are on the grassy plain: There are 2 in the hills/Montains to the NW of the enemy leader's fort, one near your own fort (that one's revealed to you when you start out), and one that's very easy to miss to the North-East of the level, North of the Swamp. Make sure you plan your village sweep to include those.&lt;br /&gt;
* It's difficult to get through this level without the Ghouls, so don't wait too long before visiting the swamp&lt;br /&gt;
&lt;br /&gt;
=== A Haunting in Winter ===&lt;br /&gt;
* Objectives: Reach the end of the cave&lt;br /&gt;
* Lose if: Malin Keshar dies&lt;br /&gt;
* Turns: no limit&lt;br /&gt;
* Starting units: Malin Keshar&lt;br /&gt;
* New Recruitment options: Ghoul (16 Gold)&lt;br /&gt;
&lt;br /&gt;
This scenario is more a series of puzzles than a typical Wesnoth battle. Malin has to learn independence by fighting a variety of cave denizens with a few undead helpers. &lt;br /&gt;
&lt;br /&gt;
The income on this level works in an unusual way. You are charged upkeep on your units as usual, but no matter how many villages you capture you never earn any income. This means you should spend all of your starting gold ASAP in the first 1-3 turns before it gets eaten up by your upkeep. &lt;br /&gt;
&lt;br /&gt;
WARNING: SPOILERS AHEAD! This scenario is intended to be a long exploration/puzzle challenge, so this walkthrough will include the solutions to the puzzles. I will try to list them all out sequentially, so that readers can just read the solution to whatever puzzle they are stuck on, without spoiling the following ones. &lt;br /&gt;
&lt;br /&gt;
1 - Young Ogres&lt;br /&gt;
&lt;br /&gt;
There are 2 partially damaged young ogres south of you. Your best units against them will be ghouls, so first recruit 2 ghouls and then retreat so that Malin is out of their reach. The ogres will attack and poison themselves. The next turn, move your ghouls and immediately recruit more if you can afford it. There is no time limit and you have a very limited number of units, so it can be a good idea to play very passively , rotate your injured ghoul out of harm's way, and let poison do its work, rather than risking losing a ghoul by pressing the attack. On the third turn, spend whatever remains of your gold and try to kill one or both of the ogres with Malin if possible. &lt;br /&gt;
&lt;br /&gt;
2 - Ogre&lt;br /&gt;
&lt;br /&gt;
After you kill the young ogres, all of your units will automatically heal to full and a lvl 2 ogre will appear to the north. Again, your goal is to avoid losing any units and to feed Malin the xp. So place a ghoul in the convenient bottleneck, allow the ogre to attack it and become poisoned. Then rotate the ghoul out and send it to the villages to the southeast, and replace it with either another ghoul if the ogre isn't poisoned yet, or a skeleton if it is. Play passively, don't attack, just allow the ogre to attack your skeleton, rotate the other skeleton in to take it's place, and repeat until the ogre is at low enough hp for Malin to take it out. &lt;br /&gt;
&lt;br /&gt;
3 - Mudcrawlers&lt;br /&gt;
&lt;br /&gt;
All of your units heal to full again after the Ogre dies. Now you are faced with the most difficult challenge of this scenario, a swarm of giant mudcrawlers. Your goal is to take them out while losing as few of your skeletal undead as possible, which is difficult given their melee AND ranged impact attacks. They are very vulnerable to cold and arcane and very resistant to impact damage, so if you have managed to get Malin to level 2 he will tear right through them, and if not then you're going to have trouble. &lt;br /&gt;
There are two basic ways to tackle this challenge. The easier way, if Malin is far from level 2 and/or you came in with a low amount of gold and couldn't afford many ghouls, is to retreat into the western tunnel behind Darken Volk. Darken won't move, but if a mudcrawler steps next to him he will attack it, and his arcane/cold attacks are extremely effective. He will probably kill several of them outright, which is ok because he needs the xp to get to level 3 anyway, and you can steal the rest of his kills with skeletons or Malin. &lt;br /&gt;
The harder way is to use the bottleneck north of your keep to allow mudcrawlers to come onto hexes 21.11 or 20.11 one at a time, then wear them down with ghouls until they're at a low enough hp that a skeleton has a good chance of finishing them off in one attack. Then rotate your skeletons back to heal, rinse and repeat. You will lose a couple ghouls and maybe your skeleton archer, but ideally you will come out of it with both skeletons at least partway to leveling up. &lt;br /&gt;
&lt;br /&gt;
4 - Mudcrawler Spawn Puzzle&lt;br /&gt;
&lt;br /&gt;
You will notice that there are only a limited number of lvl 1 Giant Mudcrawlers, but that there is also one pesky lvl 0 mudcrawler that just keeps coming back. Every time you kill it, a new one spawns from the glyph at 26.5. To disable this spawn point, you must:&lt;br /&gt;
1. Have Malin step on the storm trident at 29.10&lt;br /&gt;
&lt;br /&gt;
2. Have Malin step on the forest at 23.6&lt;br /&gt;
&lt;br /&gt;
3. Have Malin step on the glyph at 26.5&lt;br /&gt;
&lt;br /&gt;
You will receive an xp reward based on difficulty level, and the mudcrawlers will stop spawning. &lt;br /&gt;
Solving this puzzle is not necessary for finishing the scenario. &lt;br /&gt;
&lt;br /&gt;
5 - Wolf pack&lt;br /&gt;
&lt;br /&gt;
If you have enough skeletons and ghouls, this should be no problem. The wolves will trigger once you move any further west than the village at 10.4. Just position your skeletons and ghouls on good defensive terrain, poison everything you can, rotate your units back to heal, and try to farm kills for Malin and/or skeletons. Remember that there is no turn limit and you have poison, so time is on your side and you can afford to play very passively. &lt;br /&gt;
&lt;br /&gt;
6 - Rat Spawn Puzzle&lt;br /&gt;
&lt;br /&gt;
Just like the mudcrawlers, rats will continuously spawn from 8.7. Solving this puzzle is also not required to complete the level, but here are the steps: &lt;br /&gt;
1. Move Malin to the bottle at 2.2&lt;br /&gt;
&lt;br /&gt;
2. Kill the scorpion at 8.9, then have Malin step on its corpse. &lt;br /&gt;
&lt;br /&gt;
3. Move Malin to 8.7 (this can be difficult because of the rats respawning every turn, so just place Malin right behind an undead unit so that the unit can kill the rat and Malin can jump into its spot before it respawns.)&lt;br /&gt;
&lt;br /&gt;
Again, you will get an xp reward based on difficulty level&lt;br /&gt;
&lt;br /&gt;
7 - Ghost Training&lt;br /&gt;
&lt;br /&gt;
Move Malin into the water at 5.11&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ALTERNATE STRATEGY: The endlessly respawning mudcrawlers and rats on this level only provide 1 xp each when killed, but a very patient player can choose to farm them for as long as they want, which will of course make future levels easier. The way to exploit this maximally is with ghouls. Once they reach lvl 2 they gain the 'feeding' ability, and the endless supply of rats allows you to create a necrophage/ghast with hundreds of hp if you so desire, although Malin himself will start to get sick of it and complain at some point. This strategy is not at all required to beat the rest of the campaign, even on the hardest difficulty.&lt;br /&gt;
&lt;br /&gt;
=== Spring of Reprisal ===&lt;br /&gt;
* Objectives: Either Defeat the Orc leaders, or move Malin Keshar to the end of the mountain pass&lt;br /&gt;
* Lose if: Malin Keshar or Darken Volk die, or time runs out&lt;br /&gt;
* Turns: 26&lt;br /&gt;
* Starting units: Malin Keshar and Darken Volk&lt;br /&gt;
* New Recruitment options: Skeleton, Skeleton Archer.&lt;br /&gt;
&lt;br /&gt;
NOTE AS OF VERSION 1.14: Although this map itself has not changed much since the campaign was revamped in version 1.14, the rest of the campaign has changed in one very significant way: In the past, you could recruit and level up ghosts in the previous scenario, whereas now there is no way to start this scenario with shadows or wraiths. Many of the original strategies for this scenario were based on using shadows/wraiths as part of assassination teams to take out the orcish leaders. Assassination strategies might still be possible with only lvl 1 ghosts, but their low damage output and high cost makes these strategies less viable since the 1.14 update. I have kept the descriptions of these strategies at the end of this walkthrough entry, and I would be interested to hear if people have pulled them off post-1.14, but I will describe a more straightforward skeleton-based strategy. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that if you defeat both orc leaders, you win immediately and do not need to move Malin to the signpost. &lt;br /&gt;
&lt;br /&gt;
The spring thaw is underway, which means the ice on the river is thin. Whenever a non-flying unit starts its turn on an ice hex, it will start to show cracks. The next time a non-flying unit starts its turn on an ice hex with cracks, it will die and the hex will change to deep water. Counterintuitively, this also applies to skeletons who have the submerge ability, explained as them getting stuck in the mud at the bottom of the river. You can take advantage of this by using your ghost/bat units to lure enemies onto the ice, or by having your skeletons step onto ice hexes to 'pre-crack' them, then stepping back off and inviting the orcs to take their place. &lt;br /&gt;
&lt;br /&gt;
The only level 2 units your enemies will recruit in this scenario are Goblin Pillagers and Orcish Crossbowmen. These are very dangerous units for most of your undead due to their fire and impact attacks. Ghouls are useful in this scenario both because they are the least fire-vulnerable units you have access to, and because poisoning your enemies will encourage them to retreat back over the already-cracked ice in at attempt to reach villages, and hopefully fall through during the crossing. Mass skeletons are also a viable strategy, especially once you get some to lvl 2, because they can simply do enough damage to take these dangerous enemies out as quickly as possible. Large numbers of skeleton archers are less useful, even against the pillagers, as the nets will still do significant impact damage, and greatly slow down your attempts to kill them. And large numbers of bats and ghosts are not very useful because of their high cost, low hp, and vulnerability to fire. &lt;br /&gt;
&lt;br /&gt;
The most straightforward strategy is to recruit mostly skeletons, maybe a ghoul or two, and recall your spectral servant and any skeletons with significant xp from last scenario. Set up a defensive line centered on the village at 16.13 (you can grab it with Darken Volk while your other units catch up). Prioritize taking out crossbowmen and archers, then pillagers, then grunts and wolf riders, and rotate your heavily wounded skeletons back to villages in your backfield to heal. You are ignoring the wolf riders and grunts at first because they use only melee blade attacks, so if they attack your skeletons you will hurt them more in retaliation damage due to your blade resistance, and if they attack your ghouls they will get poisoned, so you come out ahead either way with no effort. Save Darken Volk for his most important job, softening up Pillagers so your skeletons can finish them off. &lt;br /&gt;
You can leave Malin in his keep for a while to keep recruiting reinforcements, but he should get moving by turn 12 at latest if he wants to grab the book at 24.6 for an xp bonus and then make a run for the signpost. Avoid engaging with the southern orcish leader and just use your group of skeletons and Darken to clear a path for Malin. In those first 12 turns, focus on leveling up some skeletons to revenants or deathblades, and also stealing some kills with Spectral Servant. &lt;br /&gt;
&lt;br /&gt;
Below are assassination based strategies that were confirmed to be successful pre-1.14: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Players have used different strategies with success...&lt;br /&gt;
&lt;br /&gt;
'''Option 1, defeat in detail:''' This is probably the easiest plan, with the highest chance of success. Attack the southern orc first, then the northern orc. You can recruit/recall mostly Ghosts, Shadows, and Wraiths, supplemented by Vampire Bats. Ghosts and Bats can capture difficult to reach villages and move on, thus weakening your foes. Keep Malin Keshar and Darken Volk alive by hiding them in the mountains, which have two chokepoints. Either give them a small guard force or be prepared to redirect some of your leveled Ghosts to assist as needed.&lt;br /&gt;
&lt;br /&gt;
'''Option 2, assassination:''' Kill both leaders at once. Recruit/recall almost exclusively Ghosts, Shadows, and Wraiths, and split them into two, one taskforce for each leader. A minimal strike force for one leader would be four Ghosts and two Shadows. Wait patiently across the river from the strongholds until darkness descends on turn 8. Then assassinate both leaders. If all goes well, the leaders will be dead by turn 9, for a nice gold bonus. Just in case it doesn't end so quickly, Malin Keshar and Darken Volk should have already been running into the deepest part of the southern mountains for safety. Exercise restraint with respect to capturing villages with bats or ghosts near the strongholds before the strike, as the enemy may divert units to intercept, which may interfere with your assassination plot.&lt;br /&gt;
&lt;br /&gt;
'''Option 3, feint:''' Use ghosts to discourage the enemy from concentrating his forces at the lake. Sending a few ghosts over the mountains and river allows you to distract the computer into sending troops back to its base, because it interprets the closer enemies as a larger threat. By doing this, you can delay the southern orcs and meet the northern orcs at the lake. Just be careful, because if you distract them too long, they build up a substantial force (rather then sending troops in piecemeal like the computer usually does) which takes a while to cut through.&lt;br /&gt;
&lt;br /&gt;
=== Schism ===&lt;br /&gt;
* Objectives: Defeat the Orc leaders&lt;br /&gt;
* Lose if: Malin Keshar or Darken Volk die or time runs out&lt;br /&gt;
* Turns: 37&lt;br /&gt;
* Starting units: Malin Keshar and Darken Volk &lt;br /&gt;
&lt;br /&gt;
The objectives in this scenario are a little misleading; while there are 3 Orc leaders on the map, it is actually enough to defeat any two of them, as the third will retreat.&lt;br /&gt;
&lt;br /&gt;
Your enemies start out with unusually low starting gold, but they each have a BASE income of +12 or +14, and this is a big map with lots of villages so in the first few turns their incomes will quickly reach +20 or more. This means that time is not on your side and this favors rush strategies. &lt;br /&gt;
&lt;br /&gt;
The enemy leaders are not quite evenly spaced; the northwest and southwest leaders are closer to each other than either of them is to the northeast leader. So for the quickest finish, the simplest strategy is an all-out rush against the northwest leader, followed by immediately rushing the southwest leader, aiming to finish before the eastern leader's forces can even reach you. Mostly ignore villages/income, accept some casualties, aim for healing in form of leveling up skeletons, and try to funnel xp into your loyal units and leader as usual. Assuming that you have a couple lvl 2 units from last scenario, you should be able to finish by turn 10 for a truly massive early finish bonus. &lt;br /&gt;
&lt;br /&gt;
The next scenario will be much easier if your loyal ghost (spectral servant/phantom/eidolon) is lvl 2, so focus on feeding him the necessary xp during this scenario. Remember that he has an unusual advancement process like Malin, so you will actually have to hit his xp cap multiple times before he properly levels. &lt;br /&gt;
&lt;br /&gt;
Ghouls will be less useful than skeletons on this level, because you're playing so aggressively that you don't have time to wait around for poison to take effect, and higher immediate damage will serve you better. Don't be afraid to attack the lvl 3 orcish leaders directly with your skeletons, as your blade resistance will minimize their retaliation damage. &lt;br /&gt;
&lt;br /&gt;
On lower difficulties or with a lot of carryover gold, you could try splitting your forces and trying to rush two leaders simultaneously. Which leaders you pick depends on your roster. Each enemy leader recruits a slightly different mix of units. All of them recruit grunts and archers, but they have these additional unit options that are unique to them: &lt;br /&gt;
Northwest: goblin spearman, orcish crossbowman, orcish warrior&lt;br /&gt;
Southwest: goblin pillager, wolf rider, goblin knight&lt;br /&gt;
Northeast: troll whelp, troll, troll rocklobber, orcish assassin&lt;br /&gt;
&lt;br /&gt;
If your strongest units are skeletal undead, then you will want to avoid the northeast leader with all of his impact-using units. If you managed to level up several wraiths in the last scenario, then they can be very effective against all of the trolls and you might want to instead avoid the pillagers with their powerful fire attacks.&lt;br /&gt;
&lt;br /&gt;
=== Return to Parthyn ===&lt;br /&gt;
* Objectives: Kill Drogan, then escape to the Northwest / Kill Orc Leader&lt;br /&gt;
* Lose if: Malin Keshar dies or any people from Parthyn die before Drogan&lt;br /&gt;
* Turns: 17&lt;br /&gt;
* Starting units: Malin Keshar and Spectral Servant/Phantom/Eidolon&lt;br /&gt;
&lt;br /&gt;
Your first objective is to kill Drogan; if any other human unit dies before Drogan, you lose. This is much easier if both Malin and your loyal ghost (now &amp;quot;phantom&amp;quot;) are at least lvl 2 already. In that case, you can just recruit 3 ghosts and attack drogan right in his keep. The enemy is very cautious and will not jump out into the river to attack ghosts, although they will do it for Malin. So just make sure Malin stays behind the loyal ghost until he's close enough to attack drogan directly. &lt;br /&gt;
&lt;br /&gt;
If Malin and Spectral Servant/Phantom are not lvl 2, this direct attack method becomes more dicey, and you can instead try to lure  drogan out of his keep by putting any unit without a ranged attack (e.g. skeleton, ghoul, bat) in range of him so that he will jump out and shoot his crossbow at it. Then you can surround him and take him out. &lt;br /&gt;
&lt;br /&gt;
When you've taken out Drogan you discover that, oops, your sister and the people of Parthyn hate you anyway. The orcs then appear at turn 5, hostile to both you and your sister's forces. Also, your goal has changed: You can either run for the signpost at the northern edge of the map, or defeat the orcish leader. Note that you can now kill human units without losing the scenario. &lt;br /&gt;
&lt;br /&gt;
You can essentially either play this scenario to optimize gold or xp for the next level: &lt;br /&gt;
&lt;br /&gt;
Gold: If Malin and your loyal ghost were strong enough to take out Drogan with only 3 additional ghosts for backup, then Malin can just make a run for it without recruiting any more units, sacrificing any remaining ghosts to cover his retreat if necessary. You mostly likely came into this scenario with an enormous carryover from Schism, you only spent 57 gold total this scenario, and even 40 percent of what you have left will still give you a very healthy surplus for the next scenario (A Small Favor - I). Being able to recruit a lot of units in A Small Favor - I is huge, because those units will have to last you all the way through A Small Favor II and III. The best route for Malin's escape around the western edge of the mountain range that separates him from the orc leader. Since there's no early finish bonus, you can afford to dilly-dally for a few turns and let your ghosts steal some kills if no one is putting too much pressure on Malin at the signpost. &lt;br /&gt;
&lt;br /&gt;
XP: You can just spend all that surplus gold from Schism here, recruit a huge army, let the orcs and humans soften each other up, then take them BOTH out, and hopefully get a bunch of lvl 2 and even lvl 3 units out of it, as well as getting Malin and your loyal ghost well on the way to lvl 3 themselves. This takes you in to A Small Favor with a smaller but more elite force. If you take this path, try to have at least one, ideally two Shadows by the end of this scenario, as they will be very useful for A Small Favor II and III. &lt;br /&gt;
&lt;br /&gt;
There are several triggerable events on this map: &lt;br /&gt;
&lt;br /&gt;
1. Malin steps on monolith on 14.9 - gain xp based on difficulty level. &lt;br /&gt;
&lt;br /&gt;
2. Malin steps on book on 29.25 - gain xp based on difficulty level. &lt;br /&gt;
&lt;br /&gt;
3. Malin steps on monolith at 19.24 (appears after Drogan's death) - gain xp based on difficulty level&lt;br /&gt;
&lt;br /&gt;
4. Recall the swimmer-type Soulless you got from the special event in the first scenario (Sushi), and move it to the boat at 31.15 - gain special ability.&lt;br /&gt;
&lt;br /&gt;
===A Small Favor - Part One===&lt;br /&gt;
* Objectives: Malin Keshar and Darken Volk enter Karae' manor, or Defeat General Taylor&lt;br /&gt;
* Lose if: Malin Keshar or Darken Volk die or time runs out&lt;br /&gt;
* Turns: 28/26/16 (easy/medium/hard)&lt;br /&gt;
* Starting units: Malin Keshar and Darken Volk&lt;br /&gt;
&lt;br /&gt;
You start the level in the woods, near the outskirts of Tath. You're not actually going into the heart of the city - but the manor you want to infiltrate is on the inside of the guarded perimeter. It's night, and it's a safe area of Wesnoth, so there are few guards on duty and only a single officer in charge on call in a castle; that's General Taylor. The head trainer of the Tath city guard is having trouble sleeping apparently (maybe he has a nose for the undead?), and a couple of men who aren't manning the guard posts. Finally, the manor entrance proper is guarded by a couple of Mages.&lt;br /&gt;
&lt;br /&gt;
It's not possible for Malin and Darken to get past the guards and reach the manor undetected - only an invisible unit get in between consecutive posts. Also, if even a single guard is alerted, he'll immediately sound the alarm - which will make General Taylor wake up a hefty contingent of guardsmen. Darken casts a spell which shortens all the guards' vision ranges, but the moment one of them spots one of your units, all of their vision ranges return to normal. &lt;br /&gt;
&lt;br /&gt;
The level has many villages - most within the Tarth city borders, owned by the enemy, but some are owner-less, in the woods. Those you can just go ahead and capture. The enemy villages may be captured without alerting the guards only by invisible units.&lt;br /&gt;
&lt;br /&gt;
As for the guards themselves - on Medium difficulty, you'll be facing Spearmen (L1) mostly, with some Pikemen (L2) and Heavy Infantrymen (L1), and the mages are an L1 and an L2, so light fare; on Hard it should still be, well, not that hard. The head trainer is a Lieutenant, and then there's the General and possibly his troops. &lt;br /&gt;
&lt;br /&gt;
For this scenario, the time of day remains Night throughout, so your shadows/nightgaunts will be continually invisible and all of your units will be continually punching above their weight. &lt;br /&gt;
&lt;br /&gt;
The most important aspect of this scenario is that whatever units you have on the map on the last turn are the units you will start with for A Small Favor Part II, and your surviving units from Part II will carry over to part III, but this will be your last chance to recruit until after Part III. So even if you employ a very non-confrontational strategy and don't NEED a lot of troops, you should still recall/recruit all the units you can in this scenario, as you will need them in Part II and III. &lt;br /&gt;
&lt;br /&gt;
There are a few options that players have tried with success:&lt;br /&gt;
&lt;br /&gt;
# '''Leader Assassination.''' Use several Shadows (or Nightgaunts) to assassinate the guard General; their Nightstalk ability gets them past the perimeter guards and directly to his castle. Take him out in one turn or two, or he will recruit heavily. Moreover, either the manor entrance watchmen, or some guards to the south of the castle, will be alerted. Thus it is somewhat risky to try this even with 3 Shadows.&lt;br /&gt;
&lt;br /&gt;
# '''Spectre-acular Cover Action.''' For this course of actions, no Shadows are necessary. You can use about 6 Wraiths/Spectres and slip them around the north of the map, as near to the manor entrance as possible, while staying out of sight. Malin and Darken Volk should take the same route, but can't get as far as the Ghosts. Then take out as many enemies as you can with your Wraiths, targeting the Mages first, and rush towards the manor with your heroes. You should be inside before the battle gets ugly. But - remember to recruit what you'll need later on before leaving the woods.&lt;br /&gt;
&lt;br /&gt;
# '''Bait and Ambush.''' Each guard will only leave its post to attack you if it can personally see you, and General Taylor doesn't actually recruit all that much. So, pick a lone guard to be the first you alert - and make sure you kill it on the first round of your attack. If you can do so with a couple of Shadows - all the better, since, you'll disappear on the next turn. Then let the enemy force come to you - yes, it seems Taylor will also not continue to recruit. After his force is gone, continue picking off one guard at a time, luring each of them away to where you have sufficient units to gang up on the poor soul. In some cases you could risk it and do 2 at a time. This strategy is more likely to work if you have a few higher-level units to recall.&lt;br /&gt;
&lt;br /&gt;
#'''Party Crasher.''' If you went with the minimal recruitment strategy last scenario and came into this one with a lot of starting gold, you can just treat it as a straightforward battle and stage a frontal assault on General Taylor. Recall all of your best units, and as many ghosts as you can afford. Taylor will recruit a lot of HI-type units, so the arcane melee attacks will be helpful for taking them down, and you will NEED at least 1-2 shadows, ideally up to 4, for Part II, so this bloodbath is a good opportunity to level up some ghosts. A few skeleton archers might be useful here as well, as Taylor likes to recruit cavalry-type units as well, but skeletons can also wear them down well enough in the perpetual night. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Remember to stay safely out of sight as much as possible (Ctrl+V will show you the enemies' moves, and their sight range is +1 of that, just like their attack range).&lt;br /&gt;
&lt;br /&gt;
===== Which units to bring into the manor? =====&lt;br /&gt;
&lt;br /&gt;
Troubled Adept asks: &amp;quot;Dear Walkthrough authors: I have raised many units from the dead, and now as I'm about to embark on a field trip to this lovely cave, they're all pestering me to take them with me! Whatever should I do?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Well, dear Troubled, remember that there are no villages in caves, which means no healing for your troops, except by leveling-up or if they have draining attacks. So Wraiths and Spectres are probably the most useful. Nightgaunts, and perhaps Shadows, are also useful in that their skirmishing ability allows them to move into the back of a narrow space and kill on the same turn as first being noticed; but - they're not as useful as outside, since the manor is lit so they'll be visible. You should have some units which can take a beating - either sacrificial L1s (e.g. Ghouls or Skeletons), or higher-HP ones (Necrophage, Revenant). It's particularly useful to have units which are close to leveling-up - even if they're otherwise not so useful - since you can have them up front at the end of a turn, take some damage, and then either heal immediately or with another kill. Skeletons are pretty good for this. &lt;br /&gt;
&lt;br /&gt;
As for ''how many'' units to bring in - don't overdo it. On Medium difficulty, 7 or 8 reasonable units in addition to Malin and Darken should be enough. You will need that carry-over gold later, you see.&lt;br /&gt;
&lt;br /&gt;
An interesting option for Parts 2 and 3 is to bring in a Walking Corpse or Soulless (if you don't have a Necromancer) - which allows you to make additional sacrificial units inside. If you're short on better units, this might not be such a bad idea. Remember than for the price of 2 recalls you get 5 corpses to start with...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Events that can be triggered in this Scenario: &lt;br /&gt;
&lt;br /&gt;
1. Any unit moves onto whirlpool at 38.23 - hostile lvl 2 tentacle of the deep appears&lt;br /&gt;
&lt;br /&gt;
2. Any unit moves to temple at 10.18 - get a special Soulless &lt;br /&gt;
&lt;br /&gt;
3. Create a mounted-type Walking Corpse by killing a mounted unit with a plague attack, then move that WC to the Stables at 9.15 - Get a Chocobone&lt;br /&gt;
&lt;br /&gt;
===A Small Favor - Part Two===&lt;br /&gt;
* Objectives: Defeat Mage Lady Karae then move through the northwest passage&lt;br /&gt;
* Lose if: Malin Keshar or Darken Volk die or time runs out&lt;br /&gt;
* Turns: 30/27/19 (easy/medium/hard)&lt;br /&gt;
* Starting units: Malin Keshar, Darken Volk and any units that survived the previous scenario&lt;br /&gt;
&lt;br /&gt;
* Other: You can't recruit or recall; only the units from last scenario will be present&lt;br /&gt;
You start with the units you had on the map at the end of the last mission, but you don't have to pay their upkeep for this scenario (nor are there any villages, anyway). Since there are no villages, you won't be able to heal your units unless they have a drain attack. Any unit which does not move for a turn will still heal 2 hp as usual. &lt;br /&gt;
&lt;br /&gt;
Anyway, your first task is to kill Karae, who is a Silver Mage and is put into one of the rooms at random.  Each room is filled with mages of one variety or another. They won't leave the rooms of their own accord, although a couple of Swordsmen and other human units wander the halls, but these shouldn't be a big deal. The mages, however, can be quite deadly. Always make sure you have sufficient forces to wipe out at least three Red or White Mages before opening a door. (You open doors by placing a unit in front of the door). However, most rooms only have one or two Mages in it, and they may be level one Mages. The skirmishing of Shadows and Nightgaunts is useful in wiping out mages. If you let the mages counter-attack, you will risk losing one or more units. Head northwest with Malin and move on.&lt;br /&gt;
&lt;br /&gt;
There doesn't seem to be any bonus for an early finish, so if you get the objective early, you can hold off and harvest some XP. The city guard will helpfully filter in a few units at a time, and you can just camp your whole army around the entrance and kill them each turn before they have a chance to move. The scenario ends when Darken OR Malin exit through the northwest passage, so you can just sent Darken that way and let Malin keep killing city guard until the very last turn. Your top xp priorities should be getting Malin and your loyal ghost across the lvl 3 threshold, and trying to get as many lvl 3 ghosts, nightgaunts or spectres, as possible. &lt;br /&gt;
&lt;br /&gt;
There are a lot of objects scattered around this level, and many of them trigger dialogue, poems, etc, but the only one which has a mechanical effect is the amulet at 3.15 which will give Malin 10% cold resistance if he steps on it.&lt;br /&gt;
&lt;br /&gt;
===A Small Favor - Part Three===&lt;br /&gt;
* Objectives: Find the book and then escape&lt;br /&gt;
* Lose if: Malin Keshar or Darken Volk die or time runs out&lt;br /&gt;
* Turns: 21/18/15 (easy/medium/hard)&lt;br /&gt;
* Starting units: Malin Keshar and any units that survived the previous scenario&lt;br /&gt;
* Other&lt;br /&gt;
** You can't recruit or recall; only the units from last scenario will be present&lt;br /&gt;
** You no longer control Darken Volk&lt;br /&gt;
&lt;br /&gt;
Darken Volk will operate separately with an army of allied undead. Hmmm, in all previous missions you commanded him directly... could this be foreshadowing? Head to the northwest to grab the book. Then head to the northeast to exit.&lt;br /&gt;
&lt;br /&gt;
City guard units will continue to arrive through the entrance, like last scenario.&lt;br /&gt;
&lt;br /&gt;
There are 3 rooms in front of you, and then a big cavern beyond with the book towards the northwest section. The enemy mages can do enormous damage to your forces, but they don't move unless you put a unit in their attack range, so use your more expendable or sturdy units to bait them out one at a time and then quickly dispatch them. You can also have your units follow along behind Darken Volk's reckless forces and take out the enemy mages after his units take the big hits. &lt;br /&gt;
&lt;br /&gt;
As with last time, after you get the book and clear out the enemies in the cavern, you can camp at the entrance for as long as you want to farm xp. As with last time, the top priorities are getting to lvl 3 for Malin and your loyal ghost, and getting as many other lvl 3's as possible, especially Nightgaunts and Specters. &lt;br /&gt;
&lt;br /&gt;
The room furthest to the left is the 'armory', and if you have the right lvl 3 units you can have them pick up some of the weapons on the ground: &lt;br /&gt;
&lt;br /&gt;
1. Have a Draug step on the axe at 27.9 - permanent +1 damage&lt;br /&gt;
&lt;br /&gt;
2. Have a Banebow step on the bow at 29.9 - permanent +1 damage&lt;br /&gt;
&lt;br /&gt;
3. Have a Chocobone step on the spear at 27.10 - permanent +2 damage&lt;br /&gt;
&lt;br /&gt;
===Alone at Last===&lt;br /&gt;
* Objectives: Take the book from Darken Volk and bring it back to Malin's castle&lt;br /&gt;
* Lose if: Malin Keshar dies&lt;br /&gt;
* Turns: 35/32/29&lt;br /&gt;
* Starting units: Malin Keshar and loyal ghost&lt;br /&gt;
* Other: Ghosts and Bats (and the rest of their unit trees) cannot pick up the book&lt;br /&gt;
&lt;br /&gt;
The situation is that you must take the book from Darken Volk, but two additional forces will appear in the middle of the battle, bent on killing both your army and Volk's, making the task more than a little difficult. When the battle reaches its peak, you probably won't have much money (and may have Malin away from a castle), and your forces will be outnumbered and at great disadvantage.&lt;br /&gt;
&lt;br /&gt;
The two extra forces are:&lt;br /&gt;
&lt;br /&gt;
# '''Sir Cadaeus the Paladin''' is bent on making both you and Darken Volk pay for your attack on the city of Tath:&lt;br /&gt;
#* Arrives on turn: 6.&lt;br /&gt;
#* Inital force: 1 Paladins, 1 Mage of Light (+ Cadaeus, a paladin who will attack units that enter his movement range but will always return to his keep to recruit)&lt;br /&gt;
#* Finances: (on Hard) 100 gold on arrival + 20 base income.&lt;br /&gt;
#* Recruits: mages, white mages, paladins, spearmen, heavy infantry&lt;br /&gt;
&lt;br /&gt;
# '''Dela Keshar''' is making good on her word to climb up the ladder for inheritance.&lt;br /&gt;
#* Arrives on turn: 13.&lt;br /&gt;
#* Initial force: None.&lt;br /&gt;
#* Finances: (on Hard) 240 gold on arrival + 24 base income.&lt;br /&gt;
#* Recruits: Spearman,Bowman,Swordsman,Longbowman,Thug,Poacher,Footpad&lt;br /&gt;
&lt;br /&gt;
Now, this is a small level, and there really isn't room for 4 forces on it... your castle is on the West of the level, slightly to the South; Darken Volk is on the East and slightly to the North. Cadaeus sets up camp in the South-Eastern edge, and Dela in the northeast corner. You and Darken are separated by a narrow river, which at some point widens to surround a small island; and there are two connecting bridges, although the crossing is not a big deal at most points. &lt;br /&gt;
&lt;br /&gt;
Now, Cadaeus' forces are extremely dangerous. While there's not too many of his units, the Paladins and the Mage of Light are the Humans' Undead-killer units, and, indeed, will kill most of your units in a single turn at daytime. And - guess what? He arrives on the second night, so his forces will start hitting you and Volk during the third day. ... but here's your silver lining: Cadaeus will advance on Darken Volk first, unless you're very much in his way, and no less importantly, Volk's forces will attack &amp;lt;i&amp;gt;Sir Cadaeus'&amp;lt;/i&amp;gt; - if you've not already engaged most of them by that time. Effectively, Volk could be a bit of an ally, albeit one which is trying to kill you.&lt;br /&gt;
&lt;br /&gt;
When Dela shows up, you will have lost any land to which you can run and hide. On the other hand, at least you're better equipped to deal with her units, and she arrives at Dusk. The Parthynians (sigh)... poor judgement through and through.&lt;br /&gt;
&lt;br /&gt;
Remember, though, that this level is not about defeating all enemy forces, nor even all enemy leaders. There are just two things you need to do, which are kill Darken Volk and bring the [https://en.wikipedia.org/wiki/MacGuffin McGuffin], uh, I mean the book, back to your castle. Note that '''not all units can carry the book'''. Indeed, it so happens that all the fast units can't be used: No Bats and no Ghosts (nor Shadow, Wraiths, Spectres and Nightgaunts). The fastest choices are Malin himself or a Deathblade; and even with one of these units it takes 4 long turns to make it back to your castle... while probably engaged in painful rear-guard combat.&lt;br /&gt;
&lt;br /&gt;
A silver lining is that for the next level you don't really need extra money above the minimum starting gold, so you can at least splurge with recruitment.&lt;br /&gt;
&lt;br /&gt;
For all the strategies below, it's important to remember that, on Hard, Darken Volk has a +32 BASE income, before any villages, so he will keep recruiting to the very end and is surprisingly resilient against even sir Cadeaus's forces. &lt;br /&gt;
&lt;br /&gt;
At any rate, here are two proven strategies for clearing the level:&lt;br /&gt;
&lt;br /&gt;
# '''Assasinate, Grab, Run.''' Recall several squads of units:&amp;lt;br&amp;gt;Assasination squad:  Nightgaunts and Shadows - less than 2+2 would probably not be enough)&amp;lt;br&amp;gt;Book carrier squad: Malin or Deathblade to carry, Wraiths (escort only), Spectres (escort only), and slower units if you must - but not that many overall.&amp;lt;br&amp;gt;Diversion/cannon fodder: Go cheap here and mostly recruit.&amp;lt;br&amp;gt;The assassins will circle Volk's forces from the North and assassinate him. The carriers and escort make a run for it; along the way, don't get too deep into confrontation with Volk's forces - you have a book to grap after all - but you don't have to completely avoid them either. Try to have the diversion get close enough to Volk's troops to make them want to attack. Run back with _all_ the carriers and the escort once you get the book. You will lose units in rear guard action during the retreat, but you can at least try to choose which ones. Some assassins might need to lay down their (un)lives for the (dubious) cause.&lt;br /&gt;
# '''The Northern End Around.''' Summon all your good troops and move everyone almost all the way North. Try to avoid full engagement with Volk for as long as you can - which will not be easy, since his units should be making contact by Turn 4.&amp;lt;br&amp;gt;Once Sir Cadaeus arrives, Volk's forces will shift attention Southwards, and you can start moving East (still being North of the river). As you do so, Dela will arrive close to your forces, where she will build a stronghold and recruit. You now turn the tables on her and surround her stronghold - thus preventing her troops from moving and her from recruiting. YOu know kill her recruits, then her self (this was not possible with older versions of Wesnoth, now it is.) Make sure you dispatch her quickly, or else Sir Cadaeus' forces will crash into your own after killing Volk. Now face Sir Cadaeus' assault wave, while send a few units. off South into the river, out again and to Volk's castle to get the book and take it back to your stronghold.&amp;lt;br&amp;gt;A variant of this strategy is to send, during the first few turns, some units due South-East as a diversion, trying to pull Volk's attention Southward. This feint can use some Ghost, Bats, and possibly even Malin himself, as the enemy really likes to focus on him for some reason...&lt;br /&gt;
# '''Fast and Ugly.''' Recall everybody, from Draugs to Nightgaunts, as well as a couple extra ghosts if you can afford them, and attack Darken head-on with a coordinated assault, across the south bridge. His wraiths will the most dangerous units to you with their arcane attack, so prioritize taking them out with Eidolon/Malin, and just wear everyone else down with weight of numbers, Draugs softening up his units and shadows/nightgaunts finishing them off. Move into the forests and hills west of Darken's castle and start pressuring him from that direction while Sir Cadaeus hits him from the Southeast. Prioritize taking out paladins, as they will be the biggest pain in the butt during your retreat, but ignore most of the rest of cadaeus' forces to encourage him and Darken to duke it out. When you see your chance, grab the book with Malin and then run like hell. Know which units are expendable. For the next scenarios, you NEED at least 2 level-3 ghost-type units to survive, but you can afford to lose a lot of Draugs and other strong units here and still be able to finish the campaign. This gets you done as quickly as possible, and you probably never interact with Dela's units at all. &lt;br /&gt;
&lt;br /&gt;
Whatever initial course you take, the end game is the same: you will need to retrieve the book with a nonflying unit and head west, back to your stronghold.&lt;br /&gt;
&lt;br /&gt;
Grabbing villages after a few at the start won't help you in this scenario. You will likely end negative on gold.&lt;br /&gt;
&lt;br /&gt;
If you decide you need more gold to play this scenario, you have to go all the way back three scenarios to [[#A_Small_Favor_-_Part_One|A Small Favor - Part One]]. There, one way to get gold is to use Shadows to steal the enemy's villages without him noticing. However, your first option above, the grab and run, should not require much gold.&lt;br /&gt;
&lt;br /&gt;
The next scenario will demand a lot of Malin and Eidolon, so get them as much xp as possible here, and try to get Malin the Vitalize upgrade if he doesn't have it already. &lt;br /&gt;
&lt;br /&gt;
Here are the events which can be triggered in this scenario: &lt;br /&gt;
&lt;br /&gt;
1. Malin steps on monolith on 5.18 - gain xp based on difficulty level&lt;br /&gt;
&lt;br /&gt;
2. Recall special Zombie Jaime (the one you got from the temple 3 scenarios ago) and move him to boat at 16.4 - gain special abilities&lt;br /&gt;
&lt;br /&gt;
3. Malin steps on monolith at 23.14 that appears when Darken Volk dies - gain xp based on difficulty level&lt;br /&gt;
&lt;br /&gt;
===Descent into Darkness===&lt;br /&gt;
* Objectives: Multiple&lt;br /&gt;
* Lose if: Mal Keshar is destroyed&lt;br /&gt;
* Turns: n/a&lt;br /&gt;
* Starting units: Mal Keshar&lt;br /&gt;
&lt;br /&gt;
This is a massive scenario that will usually take 100+ turns. Like an intensified version of A Haunting in Winter, it is mostly Malin flying solo, with a few undead sidekicks showing up right at the end, and it plays more like a series of puzzles than a typical Wesnoth battle. The downside of this is that if Malin has not accumulated enough of the right upgrades by this point it may be simply unwinnable and require either replaying several earlier scenarios to get him up to speed or relying on a lot of save-reloading to win the tricky solo fights. &lt;br /&gt;
&lt;br /&gt;
You will get a lot of xp in this level, and the upgrades you choose will be very important. Counterintuitively, the most useful upgrades will be melee focused, first getting the strongest vitalize effect you can up until you finish the ritual, and then increasing your melee damage as much as possible afterward. The upgrade to get your movement points up to 6 and the one that gives you quasi-leadership are also very helpful in the upcoming boss battle. &lt;br /&gt;
&lt;br /&gt;
1 - The Flesh&lt;br /&gt;
&lt;br /&gt;
Malin starts the ritual to become a lich, and he first must 'overcome the limitations of his flesh', symbolically represented by a bunch of zombies and ghouls. You are surrounded by 6 runes, 2 each of 3 types. Each type of rune gives one of the following bonuses,and you can find out experimentally which rune gives which bonus: &lt;br /&gt;
1. Lifeblood - heal 40hp every turn, or cure poison&lt;br /&gt;
2. Carapace - gain 40% to all resistances&lt;br /&gt;
3. Conscience - increase damage 50%&lt;br /&gt;
&lt;br /&gt;
Don't bother exploring the area away from the runes, there is nothing to discover. You just need to kill the randomly spawning enemies until a Necrophage named The Flesh of Malin Keshar shows up. Once you defeat it, you move on to the next challenge. This is where vitalize becomes so critical, as you will be taking a LOT of unavoidable melee hits, and those little 2 hp boosts really add up. Get the upgraded 4hp version if you get the chance. The Lifeblood rune will be very useful here as you will probably be repeatedly poisoned by all the ghouls. &lt;br /&gt;
&lt;br /&gt;
2 - The Bones&lt;br /&gt;
&lt;br /&gt;
Same set up, same runes, but now a bunch of random skeletons and skeleton archers, followed by the Bones of Malin Keshar, represented by a Revenant. The Lifeblood rune will serve you well again here, and carapace is helpful too now that you don't need to worry about poison. &lt;br /&gt;
&lt;br /&gt;
3 - The Soul&lt;br /&gt;
&lt;br /&gt;
The hardest stage by far, and the one where good upgrade selection can help but bad luck can still take you down. You're facing ghosts, spectres, and a very chonky 70hp Spectre named The Soul of Malin Keshar. The Carapace rune, the vitalize upgrades, and not taking too many of the upgrades that make you more vulnerable to arcane damage will hopefully get you through this battle...un-alive.&lt;br /&gt;
&lt;br /&gt;
4 - Regaining Strength&lt;br /&gt;
&lt;br /&gt;
You made it! It turns out that day one of glorious un-death consists of alternately chasing and hiding from various vermin. You're in a big complicated cavern system infested with various bats, scorpions, and rats. You need to explore, find stuff you can use, and maximize your new drain attack to recover you hp. &lt;br /&gt;
&lt;br /&gt;
The key to making an hp 'profit' from your drain attack is standing on good defensive terrain. Try to sit on castle or hill hexes and let the animals come to you, so that the probabilities favor you coming out of the fight with more hp than you went in. Vampire bats are often just a bad investment in this sense because they have such good defense on all terrain, and it can be better to just zap them and wait for a rat or scorpion to come along instead. &lt;br /&gt;
&lt;br /&gt;
There is one Dread Bat at 2.23 that you should avoid until you have a robust amount of hp built up, and should absolutely zap rather than trying to melee. &lt;br /&gt;
&lt;br /&gt;
As you explore, you'll get a sneak preview that SOMETHING very scary is in a keep at 17.7, so you will wisely avoid it for now and solve the various puzzles to prepare yourself for the next battle. &lt;br /&gt;
&lt;br /&gt;
Here are the events you can trigger in the cavern: &lt;br /&gt;
&lt;br /&gt;
1. Step on the treasure boxes on 4.19, 28.23, 27.6, and 4.26 - get gold depending on difficulty level&lt;br /&gt;
&lt;br /&gt;
2. Potion puzzle: Step on the brazier at 21.18, then the ice at 15.18, then the flask at 15.22, then the water at 15.18 (formerly ice), then the flask of water at 14.18, then the altar at 6.15 - +1 ranged damage&lt;br /&gt;
&lt;br /&gt;
3. Coffin puzzle: Step on the key at 2.1, then the coffin at 3.2, then the skeleton at 1.3, then the coffin at 3.2, then the brazier at 5.3, then the coffin at 3.2 - +2 melee damage  &lt;br /&gt;
&lt;br /&gt;
4. Reflection Pool: step in the water around 19.30 - preview of the enemy keep. &lt;br /&gt;
&lt;br /&gt;
Hopefully by the time you've solved all the puzzles and killed all the little creatures, you have a decent supply of hp and are ready for the main event. &lt;br /&gt;
&lt;br /&gt;
5 - Xanthric&lt;br /&gt;
&lt;br /&gt;
Once you get too close to the keep, specifically once your sight range covers the keep tile itself, it will trigger the boss battle. Xanthric's stats and the number of minions he gets vary with difficulty level, but he's always a big problem. His ranged attack does an absurd amount of fire damage with the marksmanship ability to boot, and he has a strong impact melee attack as well. The lava around his lair all counts as illuminated, which shuts off your nightgaunt's invisibility. And his minions both have fire attacks which are very effective against your units AND they respawn from the lava the turn after you kill them. He also has a pet giant spider hanging out on a village at 13.6 just to make your life even harder. &lt;br /&gt;
&lt;br /&gt;
The first step of your strategy should be carefully baiting out the spider before triggering Xanthric and the rest of his minions. If you haven't been able to get  your hp to full from all the random animals, you can sneak around the west side of Xanthric's keep and sit on the village at 12.1 until you get to full. Then sneak back south, keeping just outside the range where you can see the keep tile, and sit on the village at 10.8. Here, the spider can see you, but xanthric cannot. So the spider will jump out and attack you, and you will fight back with your ranged attack. He will probably retreat to his village before you can kill him, but DO NOT chase him! If you do, you'll trigger Xanthric. Instead, just sit patiently on your village (no turn limit!) until he decides to attack you again. Eventually, you'll get a couple lucky magic attacks and kill him before he has a chance to retreat. Then you can heal to full and start the main event. &lt;br /&gt;
&lt;br /&gt;
When you move close enough to see Xanthric on his keep, Eidolon and your other 2 strongest ghost-type units will appear next to you. This is why pouring xp into Eidolon and finishing Alone at Last with at least 2 lvl 3 ghost type units was so critical. A bunch of runes will also appear around Xanthric's keep, and you can step on one of them per turn to summon a random assortment of low level undead units to help you. Unfortunately, Xanthric's team also appears, a number of fire elementals dependent on difficulty, (on Hard, it's FIVE). &lt;br /&gt;
&lt;br /&gt;
Xanthric's fire elementals will respawn every turn, so trying to fight them head on is not useful, but you can beat them with trickery. It's a very big map, the fire elementals have a huge movement cost over cave tiles, and as long as the original number of elementals are alive SOMEWHERE on the map, no new ones will spawn. So you can use Malin and your ghosts to lure the elementals south, always staying just out of their reach, all the way down to the signpost near the start of the level, then ditch them and race back north up a parallel tunnel. That will buy you 2-3 precious turns to fight Xanthric by himself. &lt;br /&gt;
&lt;br /&gt;
Once it's just you and Xanthric, trigger one of the runes, ideally the one on the east side of his keep near the two bridges. If you keep all of your ghost type units entirely out of his reach, he will jump out to attack one of your random fodder units. Now you can dog-pile him with Eidolon, your two other ghosts, and Malin with his melee attack (using your ranged attack would do more damage, but he does so much fire damage in retaliation that it is extremely risky). If you don't want to risk Malin in a direct fight, you can keep Xanthric ZOC locked by your other units while Malin rushes to his keep and uses the gold from the treasure chests to recall some other heavy hitters to finish the job. You're going to lose some high level ghosts in this fight no matter what, unless you get extremely lucky, but the last scenario is not that hard and you are about to get a new minion to compensate you for your losses.&lt;br /&gt;
&lt;br /&gt;
===Endless Night===&lt;br /&gt;
* Objectives: Defeat the foolish hero&lt;br /&gt;
* Lose if: Mal Keshar is destroyed&lt;br /&gt;
* Turns: Unlimited&lt;br /&gt;
* Starting units: Mal Keshar&lt;br /&gt;
&lt;br /&gt;
And so we reach the conclusion of the campaign. We learn that Mal Keshar—formerly Malin—has become a somewhat powerful lich that has gained a reputation for himself for fighting the orc armies (and anyone who comes in his way) every summer.&lt;br /&gt;
&lt;br /&gt;
For this reason, heroes of every race that has been victimized by Mal Keshar's troops follow him to his lair, wanting to finally put an end to his advances. In this scenario you will be fighting this ''foolish'' hero, which will be either an elf, a loyalist, an outlaw, a dwarf, or an orc, chosen at random. You will be fighting them in your cave, so you have some advantage, but every time you beat one of these heroes, the scenario will repeat itself and a new hero will come for you, with more gold on his side, so it will be increasingly difficult to fight their armies.&lt;br /&gt;
&lt;br /&gt;
You can play this scenario as many times as you want to. You really have to beat only the first two heroes—on the third iteration Malin's death becomes one of the 'victory conditions'. When Malin is defeated by any subsequent hero, the victor will give a short monologue and the campaign will end. You also have the option of choosing to give away the book in hopes that the world will one day accept necromancy. &lt;br /&gt;
&lt;br /&gt;
Your new skeleton dragon pet has his own series of AMLA upgrades, like Malin and Eidolon, which you can explore to your heart's content by eating Foolish Heroes. &lt;br /&gt;
&lt;br /&gt;
If you want to take the 'give away the book' path, then just tuck Malin and a few of his friends into the little side cavern with the bottleneck at 20.27. The enemy will pile up outside the bottleneck,and eventually one of them will stumble onto the book. &lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns]]&lt;br /&gt;
[[Category:Campaigns - Walkthroughs]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=74412</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=74412"/>
		<updated>2025-06-24T22:49:37Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Flight to Freedom */ bump 1.18 branch to 5.6.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 3 stable releases (1.14, 1.16, and 1.18) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14, 1.16, or 1.18 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16 or 1.18).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16/1.18:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.2 5.6.2] (for BfW 1.18), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] (for BfW 1.19.9)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+ or 1.19.8+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.7.0 1.7.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74411</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74411"/>
		<updated>2025-06-24T22:48:50Z</updated>

		<summary type="html">&lt;p&gt;Egallager: add 5.6.2 for 1.18&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 3/24/25 (although before that, there have been multiple long stretches where it hadn't been updated, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest versions, depending on your Wesnoth version, are:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.2 5.6.2] (for Wesnoth 1.18.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] (for Wesnoth 1.19.9+)&lt;br /&gt;
&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]], although MadMax still contributes, too.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/17/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/30/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/24/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/4/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] released, for Wesnoth 1.19.9+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.2 5.6.2] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=74304</id>
		<title>User:Egallager</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=74304"/>
		<updated>2025-06-02T20:26:48Z</updated>

		<summary type="html">&lt;p&gt;Egallager: add Wesnoth logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Shield.png|right]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Hi, I am Eric Gallager. I am from New Hampshire.&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
I also go by [https://forums.wesnoth.org/memberlist.php?mode=viewprofile&amp;amp;u=219741 egallager] on the forums.&lt;br /&gt;
Here are links to the topics I've either started, or that are for campaigns I've taken over:&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53597 Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53601 A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47885 A Little Adventure]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800 The Earth's Gut]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Flight to Freedom]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24967 The War of Terrador]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486 A New Order]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 Dawn of Thunder]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=7&amp;amp;t=54568 Call for translators (for my add-ons in general)]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=6&amp;amp;t=54369 Discussion of a Japanese &amp;quot;Let's Play&amp;quot; introduction to Wesnoth]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57132 Word association]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57215 Mainlining popular UMC tracks]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57225 Categorizing UMC music by moods]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=58854 Floods of Irdya]&lt;br /&gt;
&lt;br /&gt;
== Elsewhere on the web ==&lt;br /&gt;
I go by [https://github.com/cooljeanius &amp;quot;cooljeanius&amp;quot;] on GitHub (it's an old handle), and keep the sources for many of my Wesnoth things on there:&lt;br /&gt;
* [https://github.com/cooljeanius/wesnoth_mods generalized mods collection]&lt;br /&gt;
* [https://github.com/cooljeanius/Son_Of_The_Black_Eye_Easy_Edition Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://github.com/cooljeanius/Saving_Elensefar Saving Elensefar]&lt;br /&gt;
* [https://github.com/cooljeanius/dawn_of_thunder Dawn of Thunder]&lt;br /&gt;
* [https://github.com/cooljeanius/Two_Brothers_With_A_Third_Difficulty A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://github.com/cooljeanius/The_War_of_Terrador The War of Terrador]&lt;br /&gt;
* [https://github.com/cooljeanius/A_New_Order A New Order] (with a separate repo, [https://github.com/cooljeanius/ANO_art ANO_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/A_Little_Adventure A Little Adventure] (with a separate repo, [https://github.com/cooljeanius/ALA_art ALA_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/The_Earths_Gut The Earth's Gut] (with a separate repo, [https://github.com/cooljeanius/TEG_art TEG_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom Flight to Freedom]&lt;br /&gt;
* &amp;lt;s&amp;gt;[https://github.com/cooljeanius/Roboke Roboke]&amp;lt;/s&amp;gt; (Archived)&lt;br /&gt;
I also use that handle elsewhere, such as on Wikipedia: [https://en.wikipedia.org/wiki/User:Cooljeanius https://en.wikipedia.org/wiki/User:Cooljeanius]&lt;br /&gt;
&lt;br /&gt;
== This wiki ==&lt;br /&gt;
I have been editing (and intend to edit further) the following pages: [[ReferenceWML]], [[CharactersStorys]], [[Guide to UMC Content]], [[Glossary]], [[Maintenance tools]], [[Available Music]], and [[FlightToFreedom]].&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=74280</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=74280"/>
		<updated>2025-05-04T19:34:23Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Flight to Freedom */ version bump&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 3 stable releases (1.14, 1.16, and 1.18) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14, 1.16, or 1.18 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16 or 1.18).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16/1.18:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for BfW 1.18), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] (for BfW 1.19.9)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+ or 1.19.8+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.7.0 1.7.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74279</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74279"/>
		<updated>2025-05-04T19:32:12Z</updated>

		<summary type="html">&lt;p&gt;Egallager: bump 1.19 version prereq&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 3/24/25 (although before that, there have been multiple long stretches where it hadn't been updated, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest versions, depending on your Wesnoth version, are:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for Wesnoth 1.18.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] (for Wesnoth 1.19.9+)&lt;br /&gt;
&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]], although MadMax still contributes, too.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/17/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/30/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/24/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/4/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] released, for Wesnoth 1.19.9+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74278</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74278"/>
		<updated>2025-05-04T19:31:00Z</updated>

		<summary type="html">&lt;p&gt;Egallager: 5.7.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 3/24/25 (although before that, there have been multiple long stretches where it hadn't been updated, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest versions, depending on your Wesnoth version, are:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for Wesnoth 1.18.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] (for Wesnoth 1.19.8+)&lt;br /&gt;
&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]], although MadMax still contributes, too.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/17/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/30/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/24/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/4/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.3 5.7.3] released, for Wesnoth 1.19.9+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74240</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74240"/>
		<updated>2025-03-25T02:51:04Z</updated>

		<summary type="html">&lt;p&gt;Egallager: update date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 3/24/25 (although before that, there have been multiple long stretches where it hadn't been updated, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest versions, depending on your Wesnoth version, are:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for Wesnoth 1.18.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] (for Wesnoth 1.19.8+)&lt;br /&gt;
&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]], although MadMax still contributes, too.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/17/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/30/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/24/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74239</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74239"/>
		<updated>2025-03-25T02:50:09Z</updated>

		<summary type="html">&lt;p&gt;Egallager: update for 5.7.2 release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 1/30/25 (although before that, there have been multiple long stretches where it hadn't been updated, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest versions, depending on your Wesnoth version, are:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for Wesnoth 1.18.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] (for Wesnoth 1.19.8+)&lt;br /&gt;
&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]], although MadMax still contributes, too.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/17/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/30/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/24/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=74238</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=74238"/>
		<updated>2025-03-25T02:44:28Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Flight to Freedom */ 5.7.2 now available for 1.19.8+&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 3 stable releases (1.14, 1.16, and 1.18) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14, 1.16, or 1.18 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16 or 1.18).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16/1.18:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for BfW 1.18), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.2 5.7.2] (for BfW 1.19.8)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+ or 1.19.8+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.7.0 1.7.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=74237</id>
		<title>User:Egallager</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=74237"/>
		<updated>2025-03-25T02:43:30Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* This wiki */ link to FlightToFreedom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Hi, I am Eric Gallager. I am from New Hampshire.&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
I also go by [https://forums.wesnoth.org/memberlist.php?mode=viewprofile&amp;amp;u=219741 egallager] on the forums.&lt;br /&gt;
Here are links to the topics I've either started, or that are for campaigns I've taken over:&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53597 Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53601 A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47885 A Little Adventure]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800 The Earth's Gut]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Flight to Freedom]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24967 The War of Terrador]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486 A New Order]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 Dawn of Thunder]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=7&amp;amp;t=54568 Call for translators (for my add-ons in general)]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=6&amp;amp;t=54369 Discussion of a Japanese &amp;quot;Let's Play&amp;quot; introduction to Wesnoth]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57132 Word association]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57215 Mainlining popular UMC tracks]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57225 Categorizing UMC music by moods]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=58854 Floods of Irdya]&lt;br /&gt;
&lt;br /&gt;
== Elsewhere on the web ==&lt;br /&gt;
I go by [https://github.com/cooljeanius &amp;quot;cooljeanius&amp;quot;] on GitHub (it's an old handle), and keep the sources for many of my Wesnoth things on there:&lt;br /&gt;
* [https://github.com/cooljeanius/wesnoth_mods generalized mods collection]&lt;br /&gt;
* [https://github.com/cooljeanius/Son_Of_The_Black_Eye_Easy_Edition Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://github.com/cooljeanius/Saving_Elensefar Saving Elensefar]&lt;br /&gt;
* [https://github.com/cooljeanius/dawn_of_thunder Dawn of Thunder]&lt;br /&gt;
* [https://github.com/cooljeanius/Two_Brothers_With_A_Third_Difficulty A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://github.com/cooljeanius/The_War_of_Terrador The War of Terrador]&lt;br /&gt;
* [https://github.com/cooljeanius/A_New_Order A New Order] (with a separate repo, [https://github.com/cooljeanius/ANO_art ANO_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/A_Little_Adventure A Little Adventure] (with a separate repo, [https://github.com/cooljeanius/ALA_art ALA_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/The_Earths_Gut The Earth's Gut] (with a separate repo, [https://github.com/cooljeanius/TEG_art TEG_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom Flight to Freedom]&lt;br /&gt;
* &amp;lt;s&amp;gt;[https://github.com/cooljeanius/Roboke Roboke]&amp;lt;/s&amp;gt; (Archived)&lt;br /&gt;
I also use that handle elsewhere, such as on Wikipedia: [https://en.wikipedia.org/wiki/User:Cooljeanius https://en.wikipedia.org/wiki/User:Cooljeanius]&lt;br /&gt;
&lt;br /&gt;
== This wiki ==&lt;br /&gt;
I have been editing (and intend to edit further) the following pages: [[ReferenceWML]], [[CharactersStorys]], [[Guide to UMC Content]], [[Glossary]], [[Maintenance tools]], [[Available Music]], and [[FlightToFreedom]].&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=74150</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=74150"/>
		<updated>2025-01-30T20:56:51Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Flight to Freedom */ additional version update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 3 stable releases (1.14, 1.16, and 1.18) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14, 1.16, or 1.18 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16 or 1.18).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16/1.18:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for BfW 1.18), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] (for BfW 1.19.8)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+ or 1.19.8+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.7.0 1.7.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74149</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=74149"/>
		<updated>2025-01-30T20:54:35Z</updated>

		<summary type="html">&lt;p&gt;Egallager: further version number updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 1/30/25 (although before that, there have been multiple long stretches where it hadn't been updated, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest versions, depending on your Wesnoth version, are:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] (for Wesnoth 1.18.x+)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] (for Wesnoth 1.19.8+)&lt;br /&gt;
&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]], although MadMax still contributes, too.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/17/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.1 5.6.1] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/30/25&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.7.0 5.7.0] released, for Wesnoth 1.19.8+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Create_Writing&amp;diff=74147</id>
		<title>Create Writing</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Create_Writing&amp;diff=74147"/>
		<updated>2025-01-25T13:29:05Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Useful Resources */ fix link, and add one to ProseStyle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Writers usually meet in the [http://www.wesnoth.org/forum/viewforum.php?f=32 Writers' Forum]. This is where you can go to discuss possible contributions to mainline Wesnoth writing (campaign dialog, unit descriptions, etc.), work on the Wesnoth Manual, collect reference information about the world of Wesnoth, world-build, and do other writerly things. Keep in mind that this involves bringing together information from all over the Wesnothian universe. In other words, this forum does contain spoilers.&lt;br /&gt;
&lt;br /&gt;
If you have an IRC client, you can also join the [irc://irc.freenode.net/wesnoth #wesnoth] channel on irc.freenode.net and talk about lore in realtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Any text included in The Battle for Wesnoth must be released and available under the [http://www.gnu.org/copyleft/gpl.html Gnu General Public License]. Read [http://www.wesnoth.org/forum/viewtopic.php?t=2015 this forum post by Jetrel] and [[Wesnoth:Copyrights]] for more information on this.&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; These materials may contain spoilers. This is necessary for writers, who may not want or need to play through a campaign to work over the dialog. If you don't want spoilers, you're in the wrong place.&lt;br /&gt;
&lt;br /&gt;
All dialog for mainline campaigns and unit descriptions can be accessed in the [[EditingWesnoth#The_game_data_directory|game data directory]]. There is also a current project to [[CampaignDialogue|copy all campaign dialogue onto the wiki]].&lt;br /&gt;
&lt;br /&gt;
=== The World of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
* [[Mainline_Campaigns|The mainline campaigns of Wesnoth]]&lt;br /&gt;
* [[History of Wesnoth|The history of Wesnoth]]&lt;br /&gt;
* [[Geography of Wesnoth|The geography of Wesnoth]]&lt;br /&gt;
&lt;br /&gt;
=== The People of Wesnoth ===&lt;br /&gt;
&lt;br /&gt;
* [[Faction|The factions of Wesnoth]]&lt;br /&gt;
* [[Races|The races of creatures in Wesnoth]]&lt;br /&gt;
* [[RaceDescriptions-backstory|Eleazar on Orcs and Trolls]]&lt;br /&gt;
* [[CharactersStorys|A list of hero descriptions]]&lt;br /&gt;
* [[Garardine_Dynasty|A detailed family tree of the Garardine Dynasty]]&lt;br /&gt;
* [[SecretLore|Secret Lore]]&lt;br /&gt;
&lt;br /&gt;
== Useful Resources ==&lt;br /&gt;
&lt;br /&gt;
The [[Typography Style Guide]] details the general standards used by text within Wesnoth. There are two areas where this has a bearing: in mainline campaigns, and in the user interface itself. For user-made content, writers have much more freedom, but any content or writing accepted into the game must follow our established style guides.&lt;br /&gt;
&lt;br /&gt;
ESR has already produced some [http://www.catb.org/~esr/wesnoth/campaign-design-howto.html excellent guidelines] on writing Wesnoth campaign material. This guide covers storyboarding, plotting and adding flavor, as well as advice on map design, balance, and some of the pitfalls to avoid. &lt;br /&gt;
&lt;br /&gt;
You can't really have a tutorial on how to write. Everyone has a different process. However, here are some pages from the internet that you could glance at before taking up your pen.&lt;br /&gt;
* [http://www.sfwa.org/2009/06/turkey-city-lexicon-a-primer-for-sf-workshops/ A Primer for SF Workshops]&lt;br /&gt;
* [[ProseStyle]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Create|*]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ProseStyle&amp;diff=74146</id>
		<title>ProseStyle</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ProseStyle&amp;diff=74146"/>
		<updated>2025-01-25T13:16:15Z</updated>

		<summary type="html">&lt;p&gt;Egallager: link back to Create Writing; a few other copyedits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translations}}&lt;br /&gt;
&lt;br /&gt;
One important step when setting out to [[Create Writing]] is to consider&lt;br /&gt;
your '''Prose Style'''.&lt;br /&gt;
&lt;br /&gt;
=== Elements of the style ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth is a game of heroic and high fantasy.  In writing for it, you&lt;br /&gt;
should use formal and poetic language with enough archaic words in it&lt;br /&gt;
to convey a feeling of grandeur and times past.  &lt;br /&gt;
&lt;br /&gt;
In English, there is no need to go all the way back to the Elizabethan&lt;br /&gt;
English of Shakespeare, but you do in general want to sound like a&lt;br /&gt;
fantasy novelist of Victorian or Edwardian times. J.R.R. Tolkien was,&lt;br /&gt;
of course, the best known of these; other good models are Lord&lt;br /&gt;
Dunsany, E.R.  Eddison, or James Branch Cabell.&lt;br /&gt;
&lt;br /&gt;
Beware of sounding like a bad parody, however.  When writing in this&lt;br /&gt;
style it is easy to become florid and overwrought.  Restraint is&lt;br /&gt;
important, otherwise readers will just laugh.&lt;br /&gt;
&lt;br /&gt;
If you are a good writer and very sure of yourself, you can mix in&lt;br /&gt;
some elements of modern 'street' language, especially for comic and&lt;br /&gt;
intimate scenes and when you are doing irony. But try not to mix&lt;br /&gt;
mall-rat slang and archaisms in the same dialogue, the effect is too&lt;br /&gt;
jarring.  See &amp;quot;The Rise of Wesnoth&amp;quot; for a campaign in which occasional&lt;br /&gt;
modern intrusions in the fantasy-poetic language are done well and&lt;br /&gt;
transitions from one to the other are particularly smooth.&lt;br /&gt;
&lt;br /&gt;
=== Usage notes ===&lt;br /&gt;
&lt;br /&gt;
Use the forms &amp;quot;elves&amp;quot;, &amp;quot;elven&amp;quot;, &amp;quot;elvish&amp;quot;, &amp;quot;dwarves&amp;quot;, &amp;quot;dwarven&amp;quot;, and&lt;br /&gt;
&amp;quot;dwarvish&amp;quot;, rather than the older spellings using 'f'.  Mainstream English&lt;br /&gt;
is tending this way anyway under Tolkien's influence and they are now&lt;br /&gt;
definitely preferred for fantasy use.&lt;br /&gt;
&lt;br /&gt;
In English it is legitimate to either treat all names of speaking&lt;br /&gt;
peoples as proper nouns to be capitalized (Humans, Elves, Dwarves,&lt;br /&gt;
Orcs) or as common collective nouns not capitalized (humans, elves,&lt;br /&gt;
dwarves, orcs); however these two conventions should not be mixed in&lt;br /&gt;
the same work.  In BfW we use the second convention.&lt;br /&gt;
&lt;br /&gt;
Be careful about plurals and possessives and don't misplace&lt;br /&gt;
apostrophes.  Note that &amp;quot;lich&amp;quot;, like other English words ending in&lt;br /&gt;
&amp;quot;ch&amp;quot;, pluralizes as &amp;quot;liches&amp;quot;, not &amp;quot;lichs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When referring to a specific unit type (e.g. &amp;quot;Spearman&amp;quot;, &amp;quot;Ulfserker&amp;quot;,&lt;br /&gt;
capitalize it when talking about the unit in the narrator's voice, &lt;br /&gt;
but do not do so when characters are speaking.  Thus, the narrator&lt;br /&gt;
might say &amp;quot;You may now recruit Spearmen&amp;quot;, but a character would&lt;br /&gt;
say &amp;quot;We should send some spearmen to protect the eastern gate.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dialogue and accents ===&lt;br /&gt;
&lt;br /&gt;
In general, formality and elaboration of speech should increase with&lt;br /&gt;
social rank.  (This is true in every society, but strongly true in the&lt;br /&gt;
European medieval societies that are the models for Wesnoth.)&lt;br /&gt;
&lt;br /&gt;
Magic-users and liches (especially high-ranking ones) should sound like &lt;br /&gt;
nobles.  (They have to be educated and literate.)&lt;br /&gt;
&lt;br /&gt;
Dwarves have been given the accent of old-time highland Scots.  When&lt;br /&gt;
translating into other languages, pick an accent associated with&lt;br /&gt;
tough, stubborn mountain folk.&lt;br /&gt;
&lt;br /&gt;
Ogres and trolls have crude and rather mangled grammar.  This is&lt;br /&gt;
deliberate, as they are rather stupid by human standards.&lt;br /&gt;
&lt;br /&gt;
Orcs and goblins, which are a bit brighter, should speak mostly correct&lt;br /&gt;
but rather crude and vulgar language.  Notice the epithets they have&lt;br /&gt;
for other speaking peoples (&amp;quot;tree-shagger&amp;quot;, etc.) and use them freely;&lt;br /&gt;
they are a window into how orcs think.&lt;br /&gt;
&lt;br /&gt;
Elves should have the most refined, correct, and elaborate speech.  Common&lt;br /&gt;
elves should sound like human nobles, and noble elves like human orators&lt;br /&gt;
and poets.&lt;br /&gt;
&lt;br /&gt;
[[Category:Create]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Timeline_of_Ancient_Irdya_(Unofficial)&amp;diff=74131</id>
		<title>Timeline of Ancient Irdya (Unofficial)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Timeline_of_Ancient_Irdya_(Unofficial)&amp;diff=74131"/>
		<updated>2025-01-23T12:46:32Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* 632 YW */ &amp;quot;it's&amp;quot; and &amp;quot;its&amp;quot; are commonly confused&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==War of Legends Campaigns Timeline==&lt;br /&gt;
&lt;br /&gt;
This is meant to be a reference for the '''War of Legends canon''', which is the setting for the campaigns designed by Lord-Knightmare. '''It is imperative to acknowledge that this timeline does NOT follow the official Timeline of Wesnoth nor the Irdya canon timeline and exists in an alternate continuity'''. Even though it is not required, the timeline stated here is done in relation to the Official Wesnoth timeline for comparison.&lt;br /&gt;
&lt;br /&gt;
* BW: Before Wesnoth&lt;br /&gt;
* YW: Years Wesnoth&lt;br /&gt;
&lt;br /&gt;
Note on '''Quenoth Elves''':&amp;lt;br&amp;gt;&lt;br /&gt;
The '''Quenoth Elves (Desert Elves)''' stated are here are NOT the ones from the '''Under the Burning Suns'''. '''The Fall never happens in this timeline.''' They are mostly located in the South-Western parts of Argea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Geographical Locations===&lt;br /&gt;
&lt;br /&gt;
====Great Continent====&lt;br /&gt;
This is Irdya's largest known continent. However, only a small portion of it has been explored.&lt;br /&gt;
&lt;br /&gt;
=====The Sandy Wastes=====&lt;br /&gt;
This is a great desert that exists between Wesnoth and the Silver Lands. It is rumoured that the Dunefolk may reside in settlements here. However, there is no evidence of their existence.&lt;br /&gt;
&lt;br /&gt;
=====The Silver Lands=====&lt;br /&gt;
The community lying to the east of Wesnoth is known as the Silver Lands. At its north, lies the southeastern part of the Lins-Elen (Lintair Forest) and the Eventide cities of Noct and Diurna, a volcano known as the Fire Cloud Peak that is home to the Silver Drakes and Ssyuriss Fenn, a swamp home to the hyena-like Gnolls and saurian tribes. The Bitter Swamp and the Sandy Wastes desert separate this region from Wesnoth. The Triththa Mountains lie at its heart and is the home of the Dwarves of Triththa. Lake Aoir lies to the South and the Minotaur country is situated around this lake.&lt;br /&gt;
&lt;br /&gt;
Explorers say that this may be the eastern edge of the Great Continent, but no evidence has supported their stories... yet.&lt;br /&gt;
&lt;br /&gt;
=====Kingdom of Wesnoth=====&lt;br /&gt;
&lt;br /&gt;
This is the most prominent kingdom in Irdya, almost associated with the entire western part of the Continent. Its capital is Weldyn located at the kingdom's eastern regions. Its most significant city is Dan'Tonk.&lt;br /&gt;
&lt;br /&gt;
[[Timeline of Wesnoth]]&lt;br /&gt;
&lt;br /&gt;
[[Geography of Wesnoth]]&lt;br /&gt;
&lt;br /&gt;
=====Elensefar=====&lt;br /&gt;
&lt;br /&gt;
A lorddom near Wesnoth's western border. This city state is sometimes a part of Wesnoth or sometimes considered to be an independent nation. Either way, it has been an ally of Wesnoth almost throughout its history.&lt;br /&gt;
&lt;br /&gt;
=====The Northlands=====&lt;br /&gt;
The region lying between the northern shore of the Great River and the south of the Heart Mountains is known as the Northlands. Notable locations include Wesmere Forest, home of the Kalian council, and Dwarven Doors.&lt;br /&gt;
&lt;br /&gt;
=====The Far North=====&lt;br /&gt;
The region beyond the Heart Mountains is known as the Far North. This is home mostly to the orcish tribes, although a xenophobic faction of elves reside within the Silent Forest in the aftermath of the First Elven Civil War.&lt;br /&gt;
&lt;br /&gt;
=====The Far South=====&lt;br /&gt;
The region that lies beyond the southern border of Wesnoth and the Aethenwood is known as the Far South. There is no factual account of what actually exists here, but many adventurers who had opportunity to explore the region state there is only a vast desert known as the Ashland Desert, which is actually an extension of the Sandy Wastes.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Arkenova====&lt;br /&gt;
A vast island, directly west from the Far North region of the Great Continent, and separated from the mainland by the Great Ocean. It is considered by most explorers as a small continent. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Argea====&lt;br /&gt;
&lt;br /&gt;
The actual name of the continent that is referred in Wesfolk lore as the Old Continent. It is smaller than the Great Continent but, no data has ever confirmed this. This land was where Haldric's people, the Valefolk, first originated from. The human Empire of Anaktoran was once a glorious empire, stretching from the eastern edge of the continent to the very heart of it. The western parts are the orcish homelands and some Minotaurs have also been seen in these regions. The Orcs reside in the hills, while the Minotaurs reside in the forests. It is not confirmed what lies at its northern shores but the southern portions house a vast forest. Not many things about this forest are known, save for the fact that it is rumoured to be the abode of many strange creatures — abominations and undead-like begins. King Dowrein I, the first king ever to lead an expedition to the forest and survive its ordeal, named the forest the '''Forest of Nightmares'''. The far southern part of this mainland is said to be a vast desert with multiple oases inhabited by tribes of the Dunefolk. &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====The Green Isle====&lt;br /&gt;
A large island lying somewhere on the Great Ocean, between the landmasses of Argea and the Great Continent (Argh! Somebody please make a better name this!). It is thought to be the place where the Wose first came into existence (the evidence backing this up is very fragile and thus, could be ignored).&lt;br /&gt;
&lt;br /&gt;
The central and southern area are home to the Isle-folk (Halric's people) — descendants of the refugees from Anaktoran who initially settled there - and over time these Isle-folk settlements had developed into small cities such Southbay, Stormvale and Clearwater. Decades later, the Wesfolk, led by Jevyan, arrive in the northern shores of the Green Isle and a lengthy war is fought between the two sides. The Isle-folk prevail, pushing the Wesfolk to settle in small communities, although two of these settlements developed into cities, namely Jevyan's Haven and Blackmore.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Lands of the Icy North====&lt;br /&gt;
The northern most landmass of Irdya, or in simple terms, the 'North Pole.' This region has long been the home of the Windsong Foundation however, neither the foundation's exact location nor its existence has been confirmed.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Unknown Landmass====&lt;br /&gt;
Located somewhere between the landmasses of Argea and the Great Continent and perpetually surrounded by the endless ocean, the land was divided evenly between two nations - the Celestials and the Ceresians - in a forgotten era. At the heart of the continent, there is a vast mountain which has a legend centred around it. The mythos stated that the remains of Mor-Inal were kept deep inside the core of the mountain however, the legend has been largely dismissed by both Ceresians and Celestials.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Timeline:===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Circa ~5000 BW : The First Irdyan War ====&lt;br /&gt;
* Seven prominent kingdoms/empires rule throughout Irdya, the names of these kingdoms/empires were never found. Mor-Inal, the first head of the Chaplain of Darkness and ruler of one of the kingdoms, commissions Moradin of the Dwarves to create a sceptre of unsurpassed power.&lt;br /&gt;
* The Sceptre of Power is crafted after 70 years of hard-work and research.&lt;br /&gt;
* Mor-Inal with the Sceptre of Power achieves supreme power becoming one of the most powerful beings in existence.&lt;br /&gt;
* Mor-Inal declares war on the other kingdoms, unleashing his undead, nightmares, monstrosities and elemental warriors.&lt;br /&gt;
* The Empire situated at Arkenova falls. Emperor Kaliban is slain in battle by Mor-Inal. Mor-Inal execrates Kaliban and his army to fight for him in undeath.&lt;br /&gt;
* The remaining kingdoms/empires unite against Mor-Inal, forming the first ever '''Alliance of Irdya'''.&lt;br /&gt;
* Various battles at different locations of Irdya destroy the lands, terraforming it in many cases.&lt;br /&gt;
* The remaining three kingdoms/empires are vanquished by Mor-Inal. Mor-Inal's apprentice, Vaddyn, realising what a monster his master had become, ambushes Mor-Inal at his lair. Mor-Inal is supposedly destroyed; his sceptre is disassembled. The details of this battle has never been recovered or disclosed.&lt;br /&gt;
* The remainder of Mor-Inal's forces scatter to remote locations of the planet.&lt;br /&gt;
* Vaddyn decides that the gemstones of Power (Dragon Eye, White Sapphire, Dark Emerald and the Opal of Air) must be dispersed throughout Irdya to prevent the occurrence of a second catastrophic war. He transforms the '''Dragon Eye''' into a feral dragon and allows it to leave and roam Irdya; the '''Opal of Air''' is granted to the survivors of the three kingdoms, the Aragwaithi; the '''Dark Emerald''' is hidden underneath the Southern Mountains of the Old Continent/Argea; and finally, Vaddyn takes the '''White Sapphire''' and places it within the Realm of Fire, confident of the protectorship of the Fire Elementals.&lt;br /&gt;
* Survivors of the Seven Kingdoms split into numerous groups and go there separate ways.&lt;br /&gt;
* '''The Windsong Foundation''' is established at the Farthest North, formed by a large group of female explorers, mages and scholars of the fallen empires.&lt;br /&gt;
&lt;br /&gt;
==== Circa ~4200 BW : Creation of the Vampires ====&lt;br /&gt;
&lt;br /&gt;
'''Location: North-Eastern Argea'''&lt;br /&gt;
* The human nation of Dhagonth, situated at North-Eastern Argea begin experimentation with blood magic, which eventually leads to the creation of the vampires. The vampiric 'disease' engulfs the city like a plague and a point is reached where the vampires have seized authority and the remaining humans are degraded to serfs.&lt;br /&gt;
&lt;br /&gt;
==== 4100 BW : Rise of the Wargs ====&lt;br /&gt;
&lt;br /&gt;
'''Location: North-Eastern Argea'''&lt;br /&gt;
* A human community, located deep inside the vast forests south of Dhagonth, encounter a lich and her undead army. They eradicate the monstrosity but as she swept into the death realm, she placed a powerful curse on the community. This curse transformed the humans into wolflike creatures, giving birth to the Wargs. Due to their wolflike instincts, the unity of the community dissolve and some Warg packs end up leaving the forest. However, the majority of their populace are there, refusing to leave due to the abundant game.&lt;br /&gt;
&lt;br /&gt;
==== 4000 BW - 3200 BW : Battle of the Supernaturals ====&lt;br /&gt;
&lt;br /&gt;
'''Location: North-Eastern Argea'''&lt;br /&gt;
* Frequent battles between the Wargs and the Vampires lead to an all-out war between the two races. The battle rages on for centuries and eventually reaches a stalemate with neither side gaining the upper hand.&lt;br /&gt;
* Greater hostilities gradually cease however, there are frequent skirmishes between them.&lt;br /&gt;
&lt;br /&gt;
==== 3800 BW ====&lt;br /&gt;
'''Location: South-Eastern Arkenova'''&lt;br /&gt;
* Vampiric settlers arrive at the southeastern shores of Arkenova, naming it the Peninsula of Ichor.&lt;br /&gt;
&lt;br /&gt;
==== 3500 BW : Origins of the Minotaurs ====&lt;br /&gt;
'''Location: Central Argea'''&lt;br /&gt;
* Human settlement of Karkas, somewhere in the middle of Argea, is struck by droughts and famine, resulting in a multitude of deaths. The humans find cattle and consider the bulls to be deities: an action which causes their original deity to become infuriated and she curses the humans, transforming them into the Minotaurs, half-human and half-bull.&lt;br /&gt;
* As a means of communicating with their god, their deity created 3 crystals: allowing only a Minotaur king or an apostle to use them.&lt;br /&gt;
&lt;br /&gt;
==== Circa ~2800 BW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Elves inhabit Lin-Elens (Lintanir Forest).&lt;br /&gt;
* Dwarves live in the mountains and underworld realms of Irdya.&lt;br /&gt;
* Saurians live in the Ssyuriss Fenn.&lt;br /&gt;
&lt;br /&gt;
==== 2700 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Minotaurs settle at the northeastern area of Arkenova.&lt;br /&gt;
&lt;br /&gt;
==== 2750 BW ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* Minotaurs settle at the plains around Lake Aoir.&lt;br /&gt;
&lt;br /&gt;
==== 2600 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Empire of Anaktoran is founded.&lt;br /&gt;
&lt;br /&gt;
==== 2500 BW - 2400 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* The Elves in Argea, migrate to the deserts of South-Western Argea due to territorial disputes and eventually become the Quenoth Elves. They have better feuds with both Dunefolk and Aragwaithi.&lt;br /&gt;
&lt;br /&gt;
==== 2400 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Civil war erupts in Anaktoran, leaving hundreds of thousands dead. First Dark Age begins for Anaktoran. Anaktoran eventually re-united at some point.&lt;br /&gt;
&lt;br /&gt;
==== Circa ~2000 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Galderien dynasty begins in Anaktoran; Anaktoran absorbs lesser the kingdom of Helletia. Capital moved to Gyaldon, later renamed as &amp;quot;The Imperial City&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== 1550 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Vaddyn arrives at Arkenova from a distant land and builds the Academy for his small group of followers.&lt;br /&gt;
&lt;br /&gt;
==== 1380 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* The mighty Kor Vas, a dragon suspected to be immortal, arrives in the northern shores of Arkenova with his Drake flight and eventually establish the Drake Empire, the second mightiest empire ever to be situated in Arkenova.&lt;br /&gt;
&lt;br /&gt;
==== 1185 BW - 1184 BW : '''Library of Kratemaqht''' ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Cahal, a nobleman residing in the Imperial City of Anaktoran, leads an expedition against the dragon Arkinas. His party finds and slays the dragon. Cahal and his disciples secretly examine the corpse and Cahal extracts the Dragon Eye from the dead dragon's forehead. He dubs it the ''Dragon Stone''.&lt;br /&gt;
* Lord Lenvan suspects Cahal of deception and kills him. Cahal uses the stone to resurrect himself as a Lich Lord, the first one ever recorded in Irdya's history to be not affiliated with the Dark Elementalist.&lt;br /&gt;
* War breaks out between the Empire of Anaktoran and Lich Lord Cahal. At first, the forces of the empire are victorious and Jevyan is crowned emperor. On his first day as emperor, he succumbs to old age and accepts Lich Lord Cahal's offer of becoming a Lich Lord. Antheia, granddaughter of Ariphon - advisor to the emperor — takes most of the remaining population and sets sail away from Anaktoran, leaving it to be devastated by the Lich Lords.&lt;br /&gt;
&lt;br /&gt;
==== 1182 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Human refugees from the destroyed empire of Anaktoran arrive at the western shores of Arkenova. Finding the land fit for colonisation, they start to build a new empire.&lt;br /&gt;
&lt;br /&gt;
==== 1180 BW - 986 BW ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* Another group of human refugees from the destroyed empire of Anaktoran arrive at the northern shores of the eastern Great Continent.&lt;br /&gt;
* Refugees make contact with the Elves of Lin-Elens and are granted the plains east of the forest in exchanged for their allegiance and gold.&lt;br /&gt;
* Refugees build a few colonies at various locations near the rivers, Cythring, Xalal and Silverrill.&lt;br /&gt;
* Wandering magic-casters, former disciples of Vaddyn from Arkenova, arrive at the settlements and teach magic.&lt;br /&gt;
* The refugee-turned-colonists rapidly expand their territory.&lt;br /&gt;
* Ideological conflict about types of magic starts fracturing the new nation.&lt;br /&gt;
* The opposing sides eventually consolidate around the cities of Noct and Diurna, on opposite sides of the river.&lt;br /&gt;
&lt;br /&gt;
==== 984 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* The Empire of New Anaktoran, situated at the western portion of Arkenova, is found.&lt;br /&gt;
&lt;br /&gt;
==== 865 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Mage scholars of New Anaktoran, sensing the strong elemental magic, leave the empire and enrol as residents and students of the Academy.&lt;br /&gt;
&lt;br /&gt;
==== 820 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Orcish Warlords of Northern Arkenova invade the elven lands with their relentless hordes. Forests are torched and the elven population is killed en masse. The remnants of the elven society flee southwards and arrive at the Lands of the Burning Sky (a term used by the elves instead of desert) and build settlements, eventually becoming the Desert Elves or the Quenoth.  &lt;br /&gt;
&lt;br /&gt;
==== 590 BW - 585 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* The Orcish Warlords of Northern Arkenova wage a war against the mighty dragon Kor Vas. Saurians, trolls and goblins are drawn into the conflict.&lt;br /&gt;
* Five years later, the orcs sign a peace treaty, but end up breaking it a year later.&lt;br /&gt;
&lt;br /&gt;
==== 460 BW: Founding of Verdanyn ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* A human lord gathering his loyal followers, leaves the New Anaktoran Empire and journeys into the former home of the elves. They build a settlement at the heart of Arkenova, which eventually becomes the city of Verdanyn.&lt;br /&gt;
&lt;br /&gt;
==== 300 BW: Fall of Verdanyn ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Vampires attack and conquer Verdanyn, enslaving the populace.&lt;br /&gt;
&lt;br /&gt;
==== 280 BW - 278 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Kratemaqht, guardian of the Library at the ancient capital of Anaktoran, is visited by a mage, who had heard about the Library from a story, and the great dragon allows the mage and his students to live and study there.&lt;br /&gt;
&lt;br /&gt;
==== 210 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Lich Lord Cahal visits the library of ancient Anaktoran in search of a book, but the great dragon denies him any access. Enraged, the lich summons his minions, which Kratemaqht easily overcomes. Defeated, the lich lord vows to return and kill him.&lt;br /&gt;
&lt;br /&gt;
==== 209 BW - 198 BW:  ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Kratemaqht forges an alliance of the various races including Orcs, Goblins, Vale-folk, Minotaurs, Gnolls, Saurians, Drakes the Dunefolk tribes in Argea and declares war on the Lich Lords.&lt;br /&gt;
* After a long war, Lich Lord Cahal is destroyed, and Jevyan takes the remainder of his followers and sets sail to the Green Isle. &lt;br /&gt;
* The Lich-Lords arrive on the Green Isle after losing a war in the distant West.&lt;br /&gt;
* After a long war Haldric's people (The Islefolk) come to dominate the Green Isle.&lt;br /&gt;
* The 'Wesfolk' and their Lich-Lords are pushed onto marginal lands.&lt;br /&gt;
&lt;br /&gt;
==== 180 BW ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* Dwarves from Firecloud Peak cross the Great River and colonize the hills of Triththa.&lt;br /&gt;
&lt;br /&gt;
==== 146 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* The Ruby of Fire (the Dragon Eye) finds its way into the hands of Lich Lord Lenvan.&lt;br /&gt;
&lt;br /&gt;
==== 120 BW - 119 BW ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* The Silver Drakes attack Firecloud peak and the surrounding area, drafting most of the saurians from Ssyuriss Fenn into their ranks.&lt;br /&gt;
* The dwarven defences crumble under the combined offensive. When it becomes clear that the war is lost, the survivors evacuate to Triththa.&lt;br /&gt;
* The saurians suffer the brunt of the casualties in the war and the remainder are enslaved by the Silver Drakes.&lt;br /&gt;
* The saurians remaining in Ssyuriss Fenn are soundly defeated by a Triththan offensive in the following year. The remnants of their civilisation are a number of disorganised tribes.&lt;br /&gt;
&lt;br /&gt;
==== 62 BW ====&lt;br /&gt;
'''Location: The Green Isle'''&lt;br /&gt;
* Lich Lord Lenvan is trapped beneath Greenwood Forest in the Green Isle; with him goes the Ruby of Fire.&lt;br /&gt;
&lt;br /&gt;
==== 61 BW - 55 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* The '''Aragwaithi-Dunefolk''' war takes place between the Aragwaithian Kingdoms and the Dunefolk Alliance.&lt;br /&gt;
* The war drags on for 5 years until a stalemate is reached, and an uneasy treaty is signed.&lt;br /&gt;
&lt;br /&gt;
==== 60 BW - 58 BW ====&lt;br /&gt;
* An unknown chain of events lead to the return of Mor-Inal. Seeing the planet brimming with life and still vexed of not being able to conquer the world, he vows to extinguish all life on Irdya.&lt;br /&gt;
&lt;br /&gt;
==== 55 BW ====&lt;br /&gt;
'''Location: Unknown Landmass'''&lt;br /&gt;
* The Celestial Empire is one of the first to be subjected to the Dark Elementalist's vengeance, resulting in an all-out war. The stalemate continues for years as the Celestial armies prove moderately sufficient at keeping his dark forces at bay.&lt;br /&gt;
&lt;br /&gt;
==== 50 BW - 48 BW ====&lt;br /&gt;
'''Location: Argea'''&lt;br /&gt;
* Events of the campaign '''Electrifyre''' take place.&lt;br /&gt;
&lt;br /&gt;
==== 12 BW ====&lt;br /&gt;
* The Crown Prince of Southbay, one of the many kingdoms of the Isle-folk, discovers the Great Continent.&lt;br /&gt;
&lt;br /&gt;
==== 11 BW - 07 BW ====&lt;br /&gt;
* The Crown Prince makes several voyages between the Green Isle and the Great Continent.&lt;br /&gt;
&lt;br /&gt;
==== 08 BW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* The desert elves of Arkenova begin researching into greater magic spells deep inside their mountain temple and end up creating a portal to the world of Urvatha (known later as the Inferno). Demons arrive and are considered deities by the elves. Under the leadership of the demonic generals, the elves prepare to conquer the known lands, that is, Arkenova. The agenda of the demonic generals wanting dominion is never explicitly stated.&lt;br /&gt;
&lt;br /&gt;
==== 06 BW ====&lt;br /&gt;
'''Location: The Green Isle'''&lt;br /&gt;
* The Isle-folk wage a war with the Wesfolk and their Lich-Lords.&lt;br /&gt;
* The Lich-Lords sense they will be destroyed and open gates to the homeland of the Orcs in the West (Argea).&lt;br /&gt;
&lt;br /&gt;
==== 06 BW - 04 BW : '''Epic of Jalin''' ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* Settlements of Gaelia and Marhelm northeast of the lands soon to be called Wesnoth fall. Lich-General Vaxmos (one of Mor-Inal's Chosen) is ousted by Jalin, restoring relative peace. Jalin then sails west, stumbles upon Arkenova and consequently, gets captured and imprisoned by the desert elves.&lt;br /&gt;
&lt;br /&gt;
==== 05 BW - 02 BW ====&lt;br /&gt;
'''Location: The Green Isle'''&lt;br /&gt;
* The Green Isle is overrun with Orcs.&lt;br /&gt;
* The Wesfolk desert their Lich-Lords as they fear becoming prey for the Orcs.&lt;br /&gt;
* Haldric leads the evacuation of the survivors to the Great Continent. '''The Rise of Wesnoth''' begins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 03 BW - 05 YW: Book I of the Lithian Codex ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* Minotaur warlords split up land and contend against each other for dominance over their territory near Lake Aoir. Civil war between the minotaurs breaks out and eventually, three families achieve prominence: the Ranorm family in the south west (guardians of Lithia and the crystals), the Turan family in the north, and the Kimmor family in the east.&lt;br /&gt;
* The civil war persists, Talok Ranorm, head of the Ranorm family is slain. His eldest son, Rilend, ascends as the new leader of the Ranorms.&lt;br /&gt;
* Rilend leads a massive expedition and defeats the Turans and Kimmors.&lt;br /&gt;
* In uniting the land, he is granted the title of Rilend Iron-fist and made the first king of Lithia (where the Lithian codex and the three crystals are kept).&lt;br /&gt;
* The Minotaur Elder Zeal becomes the first apostle sacrificing his sight to be able to see his creator through the crystals.&lt;br /&gt;
&lt;br /&gt;
==== 01 BW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Human settlers, led by Prince Haldric, arrive at the western coast of the Great Continent (the landfall occurs in the future Bay of Pearls) in large numbers.&lt;br /&gt;
&lt;br /&gt;
==== 01 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Haldric is granted the plains north and south of the Great River.&lt;br /&gt;
* Haldric agrees to a Pact of Mutual Defence with the Elves, but the Ka'lian decides it will betray him and allow humans and orcs to exhaust each other in war if the opportunity presents. Haldric, learning of this, considers the Pact a dead letter.&lt;br /&gt;
* The Ruby of Fire is temporarily hidden, and the lich-lord Jevyan is deceived into believing it is held by the Elves.&lt;br /&gt;
* Haldric founds the country of Wesnoth in the central plain south of the great River.&lt;br /&gt;
* Reign of Haldric I (formerly prince Haldric) begins. '''The Rise of Wesnoth''' ends.&lt;br /&gt;
&lt;br /&gt;
==== 02 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Orcs, following the ships fleeing from the Green Isle, begin to arrive on the Great Continent.&lt;br /&gt;
* These Orcs are defeated by Haldric's forces.&lt;br /&gt;
* Some of the Orcish survivors flee back to the Green Isle, others move to attack the Elves.&lt;br /&gt;
* King Haldric helps the Elves fight the surviving Orcs.&lt;br /&gt;
&lt;br /&gt;
==== 08 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* A second wave of Orcs arrive from the Green Isle; these Orcs begin claiming large portions of the northern Great Continent for themselves.&lt;br /&gt;
* Haldric I publicly repudiates the Pact he spoke with the Elves, refusing to give aid.&lt;br /&gt;
&lt;br /&gt;
==== 09 - 11 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Many Elves are killed in battle by the Orcs.&lt;br /&gt;
* Elvish emissaries are turned away from Wesnoth.&lt;br /&gt;
&lt;br /&gt;
==== 10 YW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Meherab and Mahir, friends of Jahin are born.&lt;br /&gt;
&lt;br /&gt;
==== 11 YW ====&lt;br /&gt;
'''Location: Arkenova'''&lt;br /&gt;
* Jahin, later known as the Hero of Irdya, is born.&lt;br /&gt;
&lt;br /&gt;
==== 12 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Orcs fail to take the Wesmere Forest and instead march down the coast, devastating human settlements there.&lt;br /&gt;
* Elves refuse to aid the Humans in confronting the Orcs.&lt;br /&gt;
* Human refugees from the coastal settlements relocate in what will become known as the Great Central Plain. Dan'Tonk, which will become Wesnoth's largest city, is founded.&lt;br /&gt;
&lt;br /&gt;
==== 25 YW : '''The Second and Final Irdyan War Begins''' ====&lt;br /&gt;
* Mor-Inal sends his minions throughout Irdya in order to subjugate it, igniting the chain of events known as the '''Battle for Irdya'''.&lt;br /&gt;
&lt;br /&gt;
==== 29 YW : '''Sepulchre of Elran''' ====&lt;br /&gt;
'''Location: The Great Continent (Northern Part)'''&lt;br /&gt;
The ancient tomb of King Elran, a legendary king of the Lins-Elens, is raided by forces of the Dark Elementalist. Lady Gioviel of Lins-Elen is dispatched with an army to investigate the mausoleum.&lt;br /&gt;
&lt;br /&gt;
==== 30 YW - 32 YW : '''Hero of Irdya: Book I''' ====&lt;br /&gt;
'''Location: The Arkenova'''&lt;br /&gt;
* Jahin and his friends escape the vampire-occupied Verdanyn and flee to the Academy, where they stay and learn for six months.&lt;br /&gt;
* Relentless attacks orchestrated independently by the Drakes, Elves, Trolls, Orcs, and the Vampires ignite the '''Great Arkenovan War'''.&lt;br /&gt;
* Kor Vas recruits Jahin to find allies to aid him win the war. Drakes, Trolls, Minotaurs, and the Dwarves unite and form the Alliance of Arkenova.&lt;br /&gt;
* During his journey, Jahin retrieves the White Sapphire from its guarded location but later surrenders to the Desert Elves when they attack the Dwarven gates.&lt;br /&gt;
* Verdanyn is liberated from vampire occupation by the Alliance. Jahin is promoted to Lord by the Alliance leaders and his Loyalists.&lt;br /&gt;
* Several locations of Arkenova are attacked by the forces of the Dark Elementalist. The Academy of Magic is destroyed by the hordes of undead. Vaddyn, having been deterioted for having existed over 5000 years, is vanquished. The secret to stopping Mor-Inal is lost forever.&lt;br /&gt;
* The Desert elves and their demon allies are subjected to attacks from the Dark Elementalist.&lt;br /&gt;
* The Alliance of Arkenova force the vampires to surrender, defeats the elves, rescues Jalin, forces the orcs, naga and saurians to surrender, and establishes a peace treaty with the Empire of New Anaktoran.&lt;br /&gt;
* The White Sapphire is lost to the forces of Mor-Inal during the battle at Red Mountain.&lt;br /&gt;
&lt;br /&gt;
==== 31 YW - 32 YW : Frigid Nightmares ====&lt;br /&gt;
'''Location: The Farthest North'''&lt;br /&gt;
* The Windsong Foundation at the Farthest North or Lands of the Icy North is attacked by the minions of the Dark Elementalist.&lt;br /&gt;
* The Farthest North is engulfed in Eternal Night.&lt;br /&gt;
* Sauda of the Windsong rallies the Windsong and other races against the invaders.&lt;br /&gt;
* The coalition of the Northern allies manage to repel the attack but are left severely weakened.&lt;br /&gt;
&lt;br /&gt;
==== 32 YW - 42 YW : '''Great Strife''' ====&lt;br /&gt;
'''Location: The Silver Lands'''&lt;br /&gt;
* Saurians residing at Firecloud Peak, revolt against the remaining drake overseers and liberate themselves from slavery.&lt;br /&gt;
* Mor-Inal's wizards destroy the cities of Noct and Diurna. The survivors of the cities set their differences aside and band together as the Eventide. The Eventide army set out to extract their vengeance on Irdya.&lt;br /&gt;
* Eltireans prepare for the defence against the Silver Drakes and the Minotaurs.&lt;br /&gt;
* The Silver Drakes send a significant portion of their armies towards the Flying Isles.&lt;br /&gt;
* Under the banner of Rilend Iron-fist, the minotaurs start expanding their territory. Lacking the expertise and materials to cross the Bitter Swamps, the Minotaurs send their armies north and southeastwards.&lt;br /&gt;
* The dwarves of Triththa suddenly see themselves threatened by multiple militaristic belligerents.&lt;br /&gt;
* The aforementioned events within the Silver Lands incite the '''Great Strife'''.&lt;br /&gt;
&lt;br /&gt;
==== 625 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Mysterious disappearances of livestock and peasants cause partial evacuation of the the Estmark Hills. Lords of the Horse Clans report increased banditry from there.&lt;br /&gt;
* Konrad II sends Dacyn with Owaec and Gweddry to occupy the old River Guard strongpoints. '''Eastern Invasion''' begins.&lt;br /&gt;
&lt;br /&gt;
==== 626 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Mal-Ravanal attacks the middle outpost where Gweddry and Dacyn are stationed.&lt;br /&gt;
* Dacyn and Gweddry travel to the northern outpost, and, with Owaec, retreat into the northlands.&lt;br /&gt;
&lt;br /&gt;
==== 627 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Wesnoth's last defenses are broken and the undead march onto Weldyn.&lt;br /&gt;
* In the northlands, the orcs drive Gweddry's army back across the river.&lt;br /&gt;
* Weldyn is besieged.&lt;br /&gt;
* Gweddry breaks through undead lines to reach Weldyn and a council is held.&lt;br /&gt;
* Gweddry's army is fortunate and kills Mal-Ravanal. '''Eastern Invasion''' ends.&lt;br /&gt;
* Wesnoth is saved, but large portions have been laid waste by the undead.&lt;br /&gt;
&lt;br /&gt;
==== 632 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* In response to Mal-Ravanal's attack, a hidden council of magic-casters from every race is started, named the '''Secret Council''', with its headquarters situated in the magically hidden Elven Citadel of ''Eil-En-Seiril'', located in Grey Woods.&lt;br /&gt;
&lt;br /&gt;
==== 878 YW ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* The Frost Mage, '''Erinna''' is born.&lt;br /&gt;
&lt;br /&gt;
==== 897 YW: '''Journey of a Frost Mage''' ====&lt;br /&gt;
'''Location: The Great Continent'''&lt;br /&gt;
* Events of '''Journey of a Frost Mage''' start.&lt;br /&gt;
&lt;br /&gt;
===Sources===&lt;br /&gt;
----&lt;br /&gt;
Information has been derived from the following UMC add-ons:&lt;br /&gt;
&lt;br /&gt;
* Era of Strife&lt;br /&gt;
* Library of Kratemaqht&lt;br /&gt;
* Epic of Jalin&lt;br /&gt;
* Nightmares of Meloen&lt;br /&gt;
* Electrifyre&lt;br /&gt;
* Blackfyre&lt;br /&gt;
* Blades of Steel&lt;br /&gt;
* Defending Halostrand&lt;br /&gt;
* The Rise of Wesnoth&lt;br /&gt;
* War of Legends&lt;br /&gt;
* Hero of Irdya: Book I&lt;br /&gt;
* Sepulchre of Elran&lt;br /&gt;
* Frigid Nightmares&lt;br /&gt;
* Journey of a Frost Mage&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=74121</id>
		<title>Template:WML Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=74121"/>
		<updated>2025-01-17T06:44:48Z</updated>

		<summary type="html">&lt;p&gt;Egallager: have &amp;quot;WML Tags&amp;quot; link to ReferenceWML&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;reference-sidebar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span class=&amp;quot;editlink&amp;quot;&amp;gt;&amp;amp;#91;[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit]&amp;amp;#93;&amp;lt;/span&amp;gt;'''[[ReferenceWML|WML Tags]]'''&lt;br /&gt;
|-&lt;br /&gt;
|''A:'' &lt;br /&gt;
[[AbilitiesWML#The .5Babilities.5D tag|abilities]],&lt;br /&gt;
[[CreditsWML#.5Babout.5D|about]],&lt;br /&gt;
[[AchievementsWML#.5Bachievement.5D|achievement]],&lt;br /&gt;
[[AchievementsWML#.5Bachievement_group.5D|achievement_group]],&lt;br /&gt;
[[Lua_AI_Legacy_Methods_Howto#Behavior_.28Sticky.29_Candidate_Actions|add_ai_behavior]],&lt;br /&gt;
[[AdvancedPreferenceWML|advanced_preference]],&lt;br /&gt;
[[UnitTypeWML#advancefrom|advancefrom]],&lt;br /&gt;
[[UnitTypeWML#After_max_level_advancement_.28AMLA.29|advancement]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|advances]],&lt;br /&gt;
[[AbilitiesWML#affect_adjacent|affect_adjacent]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Top-level_Elements|ai]],&lt;br /&gt;
[[StandardSideFilter#allied_with|allied_with]], &lt;br /&gt;
[[DirectActionsWML#.5Ballow_end_turn.5D|allow_end_turn]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_extra_recruit.5D|allow_extra_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_recruit.5D|allow_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_undo.5D|allow_undo]],&lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|and]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|animate]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|animate_unit]],&lt;br /&gt;
[[AnimationWML#The .5Banimation.5D tag|animation]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|aspect]],&lt;br /&gt;
attack ([[ReplayWML#attack|replay]], [[UnitTypeWML#Attacks|weapon]]),&lt;br /&gt;
[[AnimationWML#short-attack|attack_anim]],&lt;br /&gt;
attacks ([[AbilitiesWML#The_.5Bspecials.5D_tag|special]], [[StatisticalScenarioWML#The_.5Bteam.5D_tag|stats]]),&lt;br /&gt;
[[AiWML#avoid|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[UnitTypeWML#base_unit|base_unit]], &lt;br /&gt;
[[IntroWML#.5Bbackground_layer.5D|background_layer]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|berserk]], &lt;br /&gt;
[[BinaryPathWML|binary_path]],&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|break]],&lt;br /&gt;
[[EditorWML#The_.5Bbrush.5D_tag|brush]];&lt;br /&gt;
|-&lt;br /&gt;
|''C:'' &lt;br /&gt;
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]],&lt;br /&gt;
[[DirectActionsWML#.5Bcancel_action.5D|cancel_action]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bcandidate_action.5D_Tag|candidate_action]], &lt;br /&gt;
[[DirectActionsWML#.5Bcapture_village.5D|capture_village]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bswitch.5D|case]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|chance_to_hit]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bchange_theme.5D|change_theme]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bchat.5D|chat]],&lt;br /&gt;
[[OptionWML#checkbox|checkbox]],&lt;br /&gt;
[[OptionWML#choice|choice]],&lt;br /&gt;
[[ReplayWML#choose|choose]],&lt;br /&gt;
[[PersistenceWML#WML Syntax|clear_global_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bclear_menu_item.5D|clear_menu_item]],&lt;br /&gt;
[[InternalActionsWML#.5Bclear_variable.5D|clear_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bcolor_adjust.5D|color_adjust]],&lt;br /&gt;
[[GameConfigWML#Color_Palettes|color_palette]],&lt;br /&gt;
[[GameConfigWML#Color_Palettes|color_range]],&lt;br /&gt;
command&amp;amp;nbsp;([[ConditionalActionsWML#.5Bcommand.5D|action]], [[ReplayWML|replay]]),&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|continue]],&lt;br /&gt;
[[CoreWML|core]],&lt;br /&gt;
[[CreditsWML#.5Bcredits_group.5D|credits_group]],&lt;br /&gt;
[[AiWML#The_.5Bgoal.5D_Tag|criteria]];&lt;br /&gt;
|-&lt;br /&gt;
|''D:'' &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|damage]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|damage_type]], &lt;br /&gt;
[[AnimationWML#short-death|death]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|deaths]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|default]], &lt;br /&gt;
[[AnimationWML#short-defend|defend]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|defends]],&lt;br /&gt;
[[UnitsWML#defense|defense]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bdelay.5D|delay]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bdeprecated_message.5D|deprecated_message]],&lt;br /&gt;
[[ReplayWML#attack|destination]],&lt;br /&gt;
[[CampaignWML#difficulty|difficulty]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|disable]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_end_turn.5D|disallow_end_turn]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_extra_recruit.5D|disallow_extra_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_recruit.5D|disallow_recruit]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bwhile.5D|do]], &lt;br /&gt;
[[DirectActionsWML#.5Bdo_command.5D|do_command]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|drains]], &lt;br /&gt;
[[AnimationWML#short-draw_weapon|draw_weapon_anim]];&lt;br /&gt;
|-&lt;br /&gt;
|''E:'' &lt;br /&gt;
[[EditorWML#The_.5Beditor_group.5D_tag|editor_group]],&lt;br /&gt;
[[EditorWML#The_.5Beditor_music.5D_tag|editor_music]],&lt;br /&gt;
[[EditorWML#The_.5Beditor_times.5D_tag|editor_times]],&lt;br /&gt;
[[EffectWML|effect]],&lt;br /&gt;
else&amp;amp;nbsp;([[ConditionalActionsWML#.5Bif.5D|action]], [[AnimationWML#Conditional Branches|animation]]), [[ConditionalActionsWML#.5Bif.5D|elseif]],&lt;br /&gt;
[[DirectActionsWML#.5Bendlevel.5D|endlevel]],&lt;br /&gt;
end_turn&amp;amp;nbsp;([[DirectActionsWML#.5Bend_turn.5D|action]], [[ReplayWML#end_turn|replay]]),&lt;br /&gt;
[[StandardSideFilter#enemy_of|enemy_of]], &lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Engines|engine]], &lt;br /&gt;
entry&amp;amp;nbsp;([[CreditsWML#.5Bentry.5D|credits]], [[OptionWML#entry|options]]),&lt;br /&gt;
[[EraWML|era]],&lt;br /&gt;
[[EventWML|event]],&lt;br /&gt;
[[StandardUnitFilter#filter_ability|experimental_filter_ability]],&lt;br /&gt;
[[StandardUnitFilter#filter_ability_active|experimental_filter_ability_active]],&lt;br /&gt;
[[AbilitiesWML#filter_specials|experimental_filter_specials]],&lt;br /&gt;
[[AnimationWML#short-extra|extra_anim]];&lt;br /&gt;
|-&lt;br /&gt;
|''F:''&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|facet]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|facing]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_units_fake.5D|fake_unit]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bfalse.5D|false]],&lt;br /&gt;
[[PblWML#.5Bfeedback.5D|feedback]],&lt;br /&gt;
[[UnitTypeWML#variation|female]], &lt;br /&gt;
filter ([[FilterWML|concept]], [[EventWML#.5Bfilter.5D|event]]),&lt;br /&gt;
[[StandardUnitFilter#filter_adjacent|filter_adjacent]], &lt;br /&gt;
[[StandardLocationFilter#filter_adjacent_location|filter_adjacent_location]], &lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_attack]],&lt;br /&gt;
[[AbilitiesWML#filter_attacker|filter_attacker]], &lt;br /&gt;
[[AbilitiesWML#filter_base_value|filter_base_value]], &lt;br /&gt;
[[EventWML#.5Bfilter_condition.5D|filter_condition]],&lt;br /&gt;
[[AbilitiesWML#filter_defender|filter_defender]], &lt;br /&gt;
[[AiWML#Filtering_Combat_with_the_attacks_Aspect|filter_enemy]],&lt;br /&gt;
[[StandardLocationFilter|filter_location]],&lt;br /&gt;
[[AbilitiesWML#filter_opponent|filter_opponent]], &lt;br /&gt;
[[AiWML#Filtering_Combat_with_the_attacks_Aspect|filter_own]],&lt;br /&gt;
[[StandardLocationFilter#filter_owner|filter_owner]], &lt;br /&gt;
[[StandardLocationFilter#filter_radius|filter_radius]], &lt;br /&gt;
[[SingleUnitWML#filter_recall|filter_recall]], &lt;br /&gt;
[[StandardUnitFilter|filter_second]],&lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_second_attack]],&lt;br /&gt;
[[AbilitiesWML#filter_self|filter_self]], &lt;br /&gt;
[[StandardSideFilter|filter_side]],&lt;br /&gt;
[[AbilitiesWML#filter_student|filter_student]], &lt;br /&gt;
[[FilterWML#Filtering_Vision|filter_vision]],&lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_weapon]], &lt;br /&gt;
[[FilterWML#Filtering_on_WML_data|filter_wml]],&lt;br /&gt;
[[InternalActionsWML#.5Bfind_path.5D|find_path]],&lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|fire_event]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|firststrike]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bfloating_text.5D|floating_text]],&lt;br /&gt;
[[FontsWML|fonts]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bfor.5D|for]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bforeach.5D|foreach]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bfound_item.5D|found_item]],&lt;br /&gt;
[[AnimationWML#The .5Bframe.5D tag|frame]];&lt;br /&gt;
|-&lt;br /&gt;
|''G:'' &lt;br /&gt;
[[GameConfigWML|game_config]],&lt;br /&gt;
[[PersistenceWML#WML Syntax|get_global_variable]],&lt;br /&gt;
[[AiWML#The_.5Bgoal.5D_Tag|goal]],&lt;br /&gt;
[[DirectActionsWML#.5Bgold.5D|gold]],&lt;br /&gt;
[[InterfaceActionsWML#objectives-gold_carryover|gold_carryover]];&lt;br /&gt;
|-&lt;br /&gt;
|''H:'' &lt;br /&gt;
[[DirectActionsWML#.5Bharm_unit.5D|harm_unit]],&lt;br /&gt;
[[StandardSideFilter#has_ally|has_ally]], &lt;br /&gt;
[[StandardUnitFilter#has_attack|has_attack]],&lt;br /&gt;
[[StandardSideFilter#has_unit|has_unit]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bhas_achievement.5D|has_achievement]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bhave_location.5D|have_location]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bhave_unit.5D|have_unit]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|heal_on_hit]], &lt;br /&gt;
[[DirectActionsWML#.5Bheal_unit.5D|heal_unit]],&lt;br /&gt;
[[AnimationWML#short-healed|healed_anim]], &lt;br /&gt;
[[AnimationWML#short-healing|healing_anim]], &lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|heals]], &lt;br /&gt;
[[UnitsWML#.5Bhide_help.5D|hide_help]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bhide_unit.5D|hide_unit]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|hides]];&lt;br /&gt;
|-&lt;br /&gt;
|''I:'' &lt;br /&gt;
[[AnimationWML#short-idle|idle_anim]], &lt;br /&gt;
if&amp;amp;nbsp;([[ConditionalActionsWML#.5Bif.5D|action]], [[AnimationWML#Conditional Branches|animation]], [[IntroWML|intro]]),&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|illuminates]], &lt;br /&gt;
image&amp;amp;nbsp;([[IntroWML#.5Bimage.5D|intro]], [[TerrainGraphicsWML#The_.5Bimage.5D_subtag|terrain]]),&lt;br /&gt;
[[ReplayWML#init_side|init_side]],&lt;br /&gt;
[[VariablesWML#.5Binsert_tag.5D|insert_tag]],&lt;br /&gt;
[[InterfaceActionsWML#.5Binspect.5D|inspect]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bitem.5D|item]],&lt;br /&gt;
[[EditorWML#The_.5Bitem_group.5D_tag|item_group]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[UnitsWML#jamming_costs|jamming_costs]],&lt;br /&gt;
[[InternalActionsWML#join|join]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML#.5Bkill.5D|kill]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[InterfaceActionsWML#.5Blabel.5D|label]],&lt;br /&gt;
[[LanguageWML|language]],&lt;br /&gt;
[[SideWML#leader|leader]],&lt;br /&gt;
[[AiWML#leader_goal|leader_goal]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|leadership]], &lt;br /&gt;
[[AnimationWML#short-leading|leading_anim]], &lt;br /&gt;
[[AnimationWML#short-levelin|levelin_anim]],&lt;br /&gt;
[[AnimationWML#short-levelout|levelout_anim]], &lt;br /&gt;
[[DirectActionsWML#.5Blift_fog.5D|lift_fog]],&lt;br /&gt;
[[AI_Recruitment#instructions-limit|limit]],&lt;br /&gt;
[[InternalActionsWML#set_variables-literal|literal]],&lt;br /&gt;
[[AddonsWML#load_resource|load_resource]],&lt;br /&gt;
[[LocaleWML|locale]],&lt;br /&gt;
[[InterfaceActionsWML#.5Block_view.5D|lock_view]],&lt;br /&gt;
[[LuaWML|lua]];&lt;br /&gt;
|-&lt;br /&gt;
|''M:'' &lt;br /&gt;
[[UnitTypeWML#variation|male]], &lt;br /&gt;
[[SavefileWML|menu_item]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|message]],&lt;br /&gt;
[[Micro AIs|micro_ai]],&lt;br /&gt;
[[AnimationWML#The .5Bframe.5D tag|missile_frame]],&lt;br /&gt;
[[ModificationWML|modification]],&lt;br /&gt;
[[SingleUnitWML#modifications|modifications]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_ai.5D|modify_ai]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_side.5D|modify_side]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_turns.5D|modify_turns]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_unit.5D|modify_unit]],&lt;br /&gt;
[[AddonsWML#modify_unit_type|modify_unit_type]],&lt;br /&gt;
[[ReplayWML#move|move]],&lt;br /&gt;
[[DirectActionsWML#.5Bmove_unit.5D|move_unit]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_unit_fake.5D|move_unit_fake]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_units_fake.5D|move_units_fake]],&lt;br /&gt;
[[AnimationWML#short-movement|movement_anim]], &lt;br /&gt;
[[UnitsWML#movement_costs|movement costs]],&lt;br /&gt;
[[UnitsWML#.5Bmovetype.5D|movetype]],&lt;br /&gt;
[[ScenarioWML#The_.5Bmultiplayer.5D_tag|multiplayer]],&lt;br /&gt;
[[EraWML#Defining_Factions|multiplayer_side]],&lt;br /&gt;
[[MusicListWML#.5Bmusic.5D|music]];&lt;br /&gt;
|-&lt;br /&gt;
|''N:'' &lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|not]], &lt;br /&gt;
[[InterfaceActionsWML#objectives-note|note]];&lt;br /&gt;
|-&lt;br /&gt;
|''O:'' &lt;br /&gt;
[[DirectActionsWML#.5Bobject.5D|object]],&lt;br /&gt;
[[InterfaceActionsWML#objectives-objective|objective]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bobjectives.5D|objectives]],&lt;br /&gt;
[[DirectActionsWML#.5Bon_undo.5D|on_undo]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bopen_help.5D|open_help]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|option]],&lt;br /&gt;
[[OptionWML|options]],&lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|or]];&lt;br /&gt;
|-&lt;br /&gt;
|''P:'' &lt;br /&gt;
[[IntroWML#.5Bpart.5D|part]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|petrifies]], &lt;br /&gt;
[[DirectActionsWML#.5Bpetrify.5D|petrify]], &lt;br /&gt;
[[DirectActionsWML#.5Bplace_shroud.5D|place_shroud]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|plague]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|poison]], &lt;br /&gt;
[[AnimationWML#short-post_movement|post_movement_anim]], &lt;br /&gt;
[[AnimationWML#short-pre_movement|pre_movement_anim]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|primary_attack]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|primary_unit]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bprint.5D|print]], &lt;br /&gt;
[[DirectActionsWML#.5Bprogress_achievement.5D|progress_achievement]], &lt;br /&gt;
[[DirectActionsWML#.5Bput_to_recall_list.5D|put_to_recall_list]];&lt;br /&gt;
|-&lt;br /&gt;
|''R:'' &lt;br /&gt;
[[UnitsWML#.5Brace.5D|race]], &lt;br /&gt;
[[InternalActionsWML#.5Brandom_placement.5D|random_placement]], &lt;br /&gt;
recall&amp;amp;nbsp;([[DirectActionsWML#.5Brecall.5D|action]], [[ReplayWML#recall|replay]]), &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|recalls]],&lt;br /&gt;
[[ReplayWML#recruit|recruit]], &lt;br /&gt;
[[AnimationWML#short-recruit|recruit_anim]], &lt;br /&gt;
[[AnimationWML#short-recruiting|recruiting_anim]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|recruits]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bredraw.5D|redraw]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|regenerate]],&lt;br /&gt;
[[InternalActionsWML#.5Bremove_event.5D|remove_event]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_item.5D|remove_item]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_object.5D|remove_object]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_shroud.5D|remove_shroud]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_sound_source.5D|remove_sound_source]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_time_area.5D|remove_time_area]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_trait.5D|remove_trait]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_unit_overlay.5D|remove_unit_overlay]],&lt;br /&gt;
[[ConditionalActionsWML#.5Brepeat.5D|repeat]],&lt;br /&gt;
[[DirectActionsWML#.5Breplace_map.5D|replace_map]], &lt;br /&gt;
[[DirectActionsWML#.5Breplace_schedule.5D|replace_schedule]], &lt;br /&gt;
[[ReplayWML|replay]], &lt;br /&gt;
[[SavefileWML|replay_start]],&lt;br /&gt;
[[DirectActionsWML#.5Breset_fog.5D|reset_fog]], &lt;br /&gt;
resistance&amp;amp;nbsp;([[AbilitiesWML#The_.5Babilities.5D_tag|ability]], [[UnitsWML#resistance|unit]]),&lt;br /&gt;
[[UnitsWML#.5Bresistance_defaults.5D|resistance_defaults]],&lt;br /&gt;
[[ThemeWML#The_toplevel_.5Btheme.5D_tag|resolution]],&lt;br /&gt;
[[ModificationWML#The_.5Bresource.5D_toplevel_tag|resource]],&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|return]],&lt;br /&gt;
[[InternalActionsWML#.5Brole.5D|role]], &lt;br /&gt;
[[TerrainMaskWML#rule|rule]];&lt;br /&gt;
|-&lt;br /&gt;
|''S:'' &lt;br /&gt;
[[SavefileWML|save]], &lt;br /&gt;
[[ScenarioWML#The_.5Bscenario.5D_tag|scenario]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bscreen_fade.5D|screen_fade]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll.5D|scroll]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll_to.5D|scroll_to]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll_to_unit.5D|scroll_to_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|secondary_attack]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|secondary_unit]], &lt;br /&gt;
[[HelpWML#section|section]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bselect_unit.5D|select_unit]], &lt;br /&gt;
[[ReplayWML#sequence|sequence]], &lt;br /&gt;
[[DirectActionsWML#.5Bset_achievement.5D|set_achievement]],&lt;br /&gt;
[[DirectActionsWML#.5Bset_extra_recruit.5D|set_extra_recruit]],&lt;br /&gt;
[[PersistenceWML#WML_Syntax|set_global_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D|set_menu_item]], &lt;br /&gt;
[[DirectActionsWML#.5Bset_recruit.5D|set_recruit]],&lt;br /&gt;
[[EffectWML#set_specials|set_specials]], &lt;br /&gt;
[[InternalActionsWML#.5Bset_variable.5D|set_variable]], &lt;br /&gt;
[[InternalActionsWML#.5Bset_variables.5D|set_variables]], &lt;br /&gt;
[[AnimationWML#short-sheath_weapon|sheath_weapon_anim]], &lt;br /&gt;
show_if&amp;amp;nbsp;([[InterfaceActionsWML#.5Bmessage.5D|message]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bobjectives.5D|objective]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D|set_menu_item]]),&lt;br /&gt;
[[InterfaceActionsWML#.5Bshow_objectives.5D|show_objectives]],&lt;br /&gt;
[[SideWML|side]], &lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|skirmisher]], &lt;br /&gt;
[[OptionWML#slider|slider]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|slow]], &lt;br /&gt;
[[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bsound.5D|sound]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bsound_source.5D|sound_source]], &lt;br /&gt;
source&amp;amp;nbsp;([[ReplayWML#attack|replay]], [[DirectActionsWML#.5Btunnel.5D|teleport]]),&lt;br /&gt;
[[UnitTypeWML#Special Notes|special_note]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|specials]], &lt;br /&gt;
[[InternalActionsWML#set_variables-split|split]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Stages|stage]], &lt;br /&gt;
[[AnimationWML#short-standing|standing_anim]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],&lt;br /&gt;
[[SingleUnitWML#status|status]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_gold.5D|store_gold]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_items.5D|store_items]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_locations.5D|store_locations]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_map_dimensions.5D|store_map_dimensions]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_reachable_locations.5D|store_reachable_locations]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_relative_direction.5D|store_relative_direction]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_side.5D|store_side]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_starting_location.5D|store_starting_location]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_time_of_day.5D|store_time_of_day]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_turns.5D|store_turns]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit.5D|store_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_defense.5D|store_unit_defense]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_defense_on.5D|store_unit_defense_on]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_type.5D|store_unit_type]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_type_ids.5D|store_unit_type_ids]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_villages.5D|store_villages]], &lt;br /&gt;
[[IntroWML|story]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|swarm]], &lt;br /&gt;
[[AchievementsWML#.5Bsub_achievement.5D|sub_achievement]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bswitch.5D|switch]],&lt;br /&gt;
[[InternalActionsWML#.5Bsync_variable.5D|sync_variable]];&lt;br /&gt;
|-&lt;br /&gt;
|''T:'' &lt;br /&gt;
[[DirectActionsWML#.5Btunnel.5D|target]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],&lt;br /&gt;
teleport&amp;amp;nbsp;([[AbilitiesWML#Extra_tags_used_by_the_.5Bteleport.5D_ability|ability]], [[DirectActionsWML#.5Bteleport.5D|action]]),&lt;br /&gt;
[[AnimationWML#short-teleport|teleport_anim]],&lt;br /&gt;
[[DirectActionsWML#.5Bterrain.5D|terrain]], &lt;br /&gt;
[[UnitsWML#.5Bterrain_defaults.5D|terrain_defaults]],&lt;br /&gt;
[[TerrainGraphicsWML|terrain_graphics]], &lt;br /&gt;
[[TerrainMaskWML|terrain_mask]], &lt;br /&gt;
[[TerrainWML|terrain_type]], &lt;br /&gt;
[[ScenarioWML#The_.5Btest.5D_tag|test]],&lt;br /&gt;
[[InterfaceActionsWML#.5Btest_condition.5D|test_condition]],&lt;br /&gt;
[[TestWML#The_.5Btest_do_attack_by_id.5D_tag|test_do_attack_by_id]],&lt;br /&gt;
[[InterfaceActionsWML#message-text_input|text_input]], &lt;br /&gt;
[[GettextForWesnothDevelopers#The_textdomain_tag|textdomain]],&lt;br /&gt;
[[ThemeWML|theme]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bif.5D|then]],&lt;br /&gt;
[[TerrainGraphicsWML#The_.5Btile.5D_subtag|tile]], &lt;br /&gt;
[[TimeWML|time]], &lt;br /&gt;
[[DirectActionsWML#.5Btime_area.5D|time_area]], &lt;br /&gt;
[[HelpWML#topic|topic]], &lt;br /&gt;
[[HelpWML#toplevel|toplevel]], &lt;br /&gt;
[[UnitsWML#.5Btrait.5D|trait]], &lt;br /&gt;
[[DirectActionsWML#.5Btransform_unit.5D|transform_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bfind_path.5D|traveler]], &lt;br /&gt;
[[ConditionalActionsWML#.5Btrue.5D|true]],&lt;br /&gt;
[[DirectActionsWML#.5Btunnel.5D|tunnel]];&lt;br /&gt;
|-&lt;br /&gt;
|''U:'' &lt;br /&gt;
[[InterfaceActionsWML#.5Bunhide_unit.5D|unhide_unit]], &lt;br /&gt;
unit&amp;amp;nbsp;([[DirectActionsWML#.5Bunit.5D|action]], [[SingleUnitWML|scenario]]), &lt;br /&gt;
[[InterfaceActionsWML#.5Bunit_overlay.5D|unit_overlay]], &lt;br /&gt;
[[UnitTypeWML|unit_type]], &lt;br /&gt;
[[InternalActionsWML#.5Bunit_worth.5D|unit_worth]], &lt;br /&gt;
[[UnitsWML|units]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bunlock_view.5D|unlock_view]],&lt;br /&gt;
[[DirectActionsWML#.5Bunpetrify.5D|unpetrify]], &lt;br /&gt;
[[DirectActionsWML#.5Bunstore_unit.5D|unstore_unit]],&lt;br /&gt;
[[InternalActionsWML#.5Bunsynced.5D|unsynced]];&lt;br /&gt;
|-&lt;br /&gt;
| ''V:'' &lt;br /&gt;
[[InternalActionsWML#set_variables-value|value]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bvariable.5D|variable]],&lt;br /&gt;
[[VariablesWML#The_.5Bvariables.5D_tag|variables]],&lt;br /&gt;
[[TerrainGraphicsWML#variant|variant]],&lt;br /&gt;
[[UnitTypeWML#variation|variation]], &lt;br /&gt;
[[AnimationWML#short-victory|victory_anim]], &lt;br /&gt;
[[SideWML#village|village]],&lt;br /&gt;
[[UnitsWML#vision_costs|vision_costs]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bvolume.5D|volume]];&lt;br /&gt;
|-&lt;br /&gt;
| ''W:'' &lt;br /&gt;
[[ConditionalActionsWML#.5Bwhile.5D|while]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bwml_message.5D|wml_message]],&lt;br /&gt;
[[SchemaWML|wml_schema]];&lt;br /&gt;
|-&lt;br /&gt;
| ''Z:''&lt;br /&gt;
[[InterfaceActionsWML#.5Bzoom.5D|zoom]];&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;[[Category:WML Reference]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;A box with all the WML tags, each one linking to the page and section they are described in. This box should be included in each of the [[ReferenceWML|WML reference]] pages.&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Maintenance_tools&amp;diff=74044</id>
		<title>Maintenance tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Maintenance_tools&amp;diff=74044"/>
		<updated>2024-12-31T23:47:25Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* wmllint */ wiki version of https://github.com/wesnoth/wesnoth/commit/2583d9ae80e26b433e04a74a78d83e72098a11b0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt; __TOC__ &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wesnoth source code distribution includes a couple of tools intended to help authors maintain campaigns, faction &amp;amp; unit packs, and other WML resources. These&lt;br /&gt;
are:&lt;br /&gt;
 &lt;br /&gt;
; wmlscope: a cross-reference lister, useful for finding unresolved macro and resource-file references.&lt;br /&gt;
&lt;br /&gt;
; wmllint: a utility for sanity-checking WML syntax and porting your old WML to the current version of WML.  &lt;br /&gt;
&lt;br /&gt;
; wmlindent: a utility for reindenting WML to a uniform style.&lt;br /&gt;
&lt;br /&gt;
; GUI.pyw: a graphical interface&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
&lt;br /&gt;
You will need a Python 3 interpreter on your system to use these tools.  Linux, *BSD, and Mac OS/X should already have Python 3 installed; for Windows it's a free download&lt;br /&gt;
from http://www.python.org.  You will also need to know how to run command-line tools on your system.&lt;br /&gt;
&lt;br /&gt;
If you're working with Debian or Ubuntu you might have to install the package wesnoth-1.16-tools (or the convenient version).&lt;br /&gt;
 sudo apt install wesnoth-1.16-tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All three tools will require you to supply a &amp;lt;i&amp;gt;directory list&amp;lt;/i&amp;gt;.  This is a set of directories containing the WML files you want to work on.&lt;br /&gt;
&lt;br /&gt;
This page is intended as documentation for users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note to Windows Users:&amp;lt;/u&amp;gt; This means you have to run it from the '''Command Line'''. The command line may be reached by hitting Start, then Run, then &amp;quot;cmd&amp;quot; or &amp;quot;command&amp;quot; depending on your version of Windows.&lt;br /&gt;
&lt;br /&gt;
Example uses:&lt;br /&gt;
 python wmllint path\to\files&lt;br /&gt;
 python wmlindent path\to\files&lt;br /&gt;
&lt;br /&gt;
Another example:&lt;br /&gt;
 &amp;quot;C:\Program Files\Python3.7\python.exe&amp;quot; data\tools\wmllint --dryrun data\core data\{multiplayer,themes} data\campaigns &lt;br /&gt;
(You have to specify the full directory path to the executable if you don't have your environment variables set up correctly).&lt;br /&gt;
The first thing you type is the path to your python executable, followed by a space. The second thing you type is the path to the desired script to run, followed by a space. The third thing you type is the path to the folder (or file) to be processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A convenient way of running wmllint''' on Linux (Debian or Ubuntu) and Windows in comparison, '''Linux''':&lt;br /&gt;
&lt;br /&gt;
Assuming we're working with wesnoth 1.16 or more advanced versions.&lt;br /&gt;
 python3 /usr/share/games/wesnoth/1.16/data/tools/wmllint --dryrun /usr/share/games/wesnoth/1.16/data/core ~/.local/share/wesnoth/1.16/data/add-ons/A_Simple_Campaign 1&amp;gt;wmllint-run.log 2&amp;gt;wmllint-err.log&lt;br /&gt;
I have these commands inside of a file named&lt;br /&gt;
 wmllint_dryrun_ASC.sh&lt;br /&gt;
and execute it by opening a shell (=terminal, console, command window, bash,...), navigating into the directory with that file and typing&lt;br /&gt;
 bash wmllint_dryrun_ASC.sh&lt;br /&gt;
The python3 command should be automatically known on Debian. The path to the script tells the python interpreter what to execute. --dryrun: A wmllint option, see below. The path to the core files is needed to let wmllint know about e.g. defined core units, followed by the path to the add-on that shall be checked; the last two commands cause the result of the wmllint usage to be written into those files in the same directory as the script.&lt;br /&gt;
'''Windows''', this is logically exactly the same as the Linux shell script above, so if you are on a Mac you can probably conclude how you need to adapt the paths:&lt;br /&gt;
 E:\Python37\python.exe E:\Programme\Wesnoth_1.16_git\data\tools\wmllint --dryrun E:\Programme\Wesnoth_1.16_git\data\core E:\Programme\Wesnoth_1.16_git\userdata\data\add-ons\A_Simple_Campaign 1&amp;gt;wmllint-run.log 2&amp;gt;wmllint-err.log&lt;br /&gt;
This is the content of a .txt file, whose extension I rename to .bat and double-click onto it. Opening a command window is not needed this way.&lt;br /&gt;
Since Python isn't natively installed on windows and I don't have environment variables set, the full path to python.exe is given. If your directories contain spaces it may help to include the path in quotes:&lt;br /&gt;
 &amp;quot;C:\Programs\Battle for Wesnoth 1.16\data\tools\wmllint&amp;quot;&lt;br /&gt;
Remember that you do not need to enter all of the commands/paths at once. If it doesn't work, start with only &amp;quot;python&amp;quot; or &amp;quot;C:\Python37\python.exe&amp;quot; or the like and interpret the error messages that you get. If you get an &amp;quot;unknown command&amp;quot;, python isn't installed or environment variables aren't set correctly. After that, you can add the later commands one by one.&lt;br /&gt;
&lt;br /&gt;
== wmlscope ==&lt;br /&gt;
&lt;br /&gt;
The main use for &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; is to find WML macro references without definitions and references to resource files (sounds and images) that don't exist.  These are difficult to spot from in-game because they usually result in silence or a missing image rather than actual broken game logic (see [https://github.com/wesnoth/wesnoth/issues/5332 issue 5332] for more info).  They may happen because of typos in your WML, or because the name of a macro or the location of a resource file changed between versions of the game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; also checks macro invocations for consistency.  It will complain&lt;br /&gt;
if a macro is called with the wrong number of arguments.  In most cases it can deduce information about the type of the literal expected to be passed to a given macro argument by looking at the name of the formal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Formals requiring this type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Literals of this type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;side&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a single side number&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SIDE, *_SIDE, SIDE[0-9]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric or &amp;quot;global&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;numeric&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric integer literal&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SIDE, X, Y, RED, GREEN, BLUE, TURN, PROB, LAYER, TIME, *_SIDE, *NUMBER, *AMOUNT, *COST, *RADIUS, *_X, *_Y, *_INCREMENT, *_FACTOR, *_TIME, *_SIZE, DURATION&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;\-?[0-9]+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;percentage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a percentage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*PERCENTAGE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric or 0\.[0-9]+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;position&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a single x,y coordinate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;POSITION, *_POSITION, BASE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-?[0-9]+,-?[0-9]+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;span&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of coordinates or coordinate ranges&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*_SPAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric, position or ([0-9]+\-[0-9]+,?|[0-9]+,?)+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;alliance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of side numbers&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SIDES, *_SIDES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a span, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;range&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;an attack range&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;RANGE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;alignment&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;an alignment keyword&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ALIGN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;quot;lawful&amp;quot; or &amp;quot;neutral&amp;quot; or &amp;quot;chaotic&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;types&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of unit types&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TYPES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname, name, or anything that contains spaces and matches no other type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;terrain_pattern&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of terrain codes to filter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ADJACENT*, TERRAINLIST*, *TERRAIN_PATTERN, RESTRICTING&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a terrain_code or name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;terrain_code&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a single terrain code, perhaps with overlay&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TERRAIN*, *TERRAIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname or (\*|[A-Z][a-z]+)\^([A-Z][a-z\\|/]+\Z)?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;shortname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a terrain code or a short, capitalized variable name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[A-Z][a-z][a-z]?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a name or identifier&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;NAME, VAR, IMAGESTEM, ID, FLAG, *_NAME, *_ID, NAMESPACE, BUILDER, *_VAR&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;anything without spaces that matches no other type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;optional_string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a string value (may be empty)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ID_STRING, NAME_STRING, DESCRIPTION, IPF&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a string, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a nonempty string not matching any of the preceding types&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;STRING, TYPE, TEXT, *_STRING, *_TYPE, *_TEXT&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname, a name, a stringliteral, or anything that contains spaces and matches no other type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;stringliteral&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a string in doublequotes or a translated string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;quot;.*&amp;quot; or _.* but not _[a-z].*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;image&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;an image path, perhaps with [[ImagePathFunctionWML|image path functions]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*IMAGE, PROFILE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[A-Za-z0-9{}.][A-Za-z0-9_/+{}.-]*\.(png|jpg)(?=(~.*)?)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;sound&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a music or sound filename&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MUSIC, SOUND&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;string ending with &amp;quot;.wav&amp;quot; or &amp;quot;.ogg&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;filter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[FilterWML|WML filter]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;FILTER&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;any non-quoted string containing &amp;quot;=&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WML&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;arbitrary WML fragment&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WML, *_WML&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;any non-quoted string containing &amp;quot;=&amp;quot;, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;affix&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a prefix, suffix, or infix for a variable name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;AFFIX, *AFFIX, POSTFIX, ROTATION&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname or name, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;any&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;anything&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*VALUE, [ARS][0-9]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;anything&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the actual argument is a macro call {.*}, then it matches any formal.  Otherwise, if the formal has an identifiable type, &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; will complain if the actual literal does not match it.&lt;br /&gt;
&lt;br /&gt;
The argument type check only works in macro calls that fit on a single line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; has many options for changing the reports it generates; the more advanced ones are intended for Wesnoth developers.  Invocations for the most commonly useful reports it generates are included in &amp;lt;i&amp;gt;data/tools/Makefile&amp;lt;/i&amp;gt; of the source distribution. Here are some of those reports:&lt;br /&gt;
&lt;br /&gt;
; make unresolved: Report on unresolved macro calls and resource references; also report macro argument-type mismatches.  (This is what you are most likely to want to do). &lt;br /&gt;
&lt;br /&gt;
; make all: Report all macro and resource file references, not just unresolved ones.&lt;br /&gt;
&lt;br /&gt;
; make collisions: Report on duplicate resource files.&lt;br /&gt;
&lt;br /&gt;
For more advanced users, or those who want to understand what the canned Makefile invocations are doing, here is a summary of &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt;'s options. Some of the more advanced options will require you to understand &lt;br /&gt;
[http://docs.python.org/lib/re-syntax.html Python regular expressions].&lt;br /&gt;
&lt;br /&gt;
; -h, --help:                 Emit a help message and quit&lt;br /&gt;
; -c, --crossreference:       Report resolved macro references (implies &amp;lt;tt&amp;gt;-w 1&amp;lt;/tt&amp;gt;)&lt;br /&gt;
; -C, --collisions:           Report duplicate resource files   &lt;br /&gt;
; -d, --deflist:              Make definition list.  (This one is for campaign server maintainers.)&lt;br /&gt;
; -e &amp;lt;i&amp;gt;regexp&amp;lt;/i&amp;gt;, --exclude &amp;lt;i&amp;gt;regexp&amp;lt;/i&amp;gt;:   Ignore files matching the specified regular expression. &lt;br /&gt;
; -f &amp;lt;i&amp;gt;dir&amp;lt;/i&amp;gt;, --from &amp;lt;i&amp;gt;dir&amp;lt;/i&amp;gt;:         Report only on macros defined under &amp;lt;i&amp;gt;dir&amp;lt;/i&amp;gt;&lt;br /&gt;
; -l, --listfiles:            List files that will be processed&lt;br /&gt;
; -r &amp;lt;i&amp;gt;ddd&amp;lt;/i&amp;gt;, --refcount=&amp;lt;i&amp;gt;ddd&amp;lt;/i&amp;gt;:     Report only on macros with references in exactly &amp;lt;i&amp;gt;ddd&amp;lt;/i&amp;gt; files.&lt;br /&gt;
; -t &amp;lt;i&amp;gt;TYPELIST&amp;lt;/i&amp;gt;, --typelist &amp;lt;i&amp;gt;TYPELIST&amp;lt;/i&amp;gt;: List actual &amp;amp; formal argtypes for calls in fname&lt;br /&gt;
; -u, --unresolved:           Report unresolved macro references&lt;br /&gt;
; -w, --warnlevel:            Set to 1 to warn of duplicate macro definitions&lt;br /&gt;
; -p, --progress:             Show progress&lt;br /&gt;
; --force-used reg:           Ignore reference count 0 on names matching regexp&lt;br /&gt;
; --extracthelp:              Extract help from macro definition comments.&lt;br /&gt;
; --unchecked:                Report all macros with untyped formals.&lt;br /&gt;
; --version:                  show program's version number and exit&lt;br /&gt;
&lt;br /&gt;
These options are used with a list of directories as arguments; if none is given,&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; behaves as though the current directory had been specified as a&lt;br /&gt;
single argument.  Each directory is treated as a separate domain for&lt;br /&gt;
macro and resource visibility purposes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; recognizes two kinds of namespace, exporting and non-exporting.&lt;br /&gt;
Exporting namespaces make all their resources and macro names&lt;br /&gt;
globally visible.  You can make a namespace exporting by embedding&lt;br /&gt;
a comment like this in it:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: export=yes&lt;br /&gt;
&lt;br /&gt;
Wesnoth core data is an exporting namespace.  Campaigns are non-exporting;&lt;br /&gt;
they should contain the declaration&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: export=no&lt;br /&gt;
&lt;br /&gt;
somewhere.  &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; will complain when it sees a namespace with no export&lt;br /&gt;
property, then treat it as non-exporting.&lt;br /&gt;
&lt;br /&gt;
You can tell &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; to ignore stretches of config files&lt;br /&gt;
with the following magic comments:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: start ignoring&lt;br /&gt;
    # wmlscope: stop ignoring&lt;br /&gt;
&lt;br /&gt;
Similarly, you can tell &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; to ignore multiple or duplicate macro&lt;br /&gt;
definitions in a range of lines with the following magic comments:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: start conditionals&lt;br /&gt;
    # wmlscope: stop conditionals&lt;br /&gt;
&lt;br /&gt;
The following magic comment:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: prune FOOBAR&lt;br /&gt;
&lt;br /&gt;
will cause &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; to forget about all but one of the definitions of&lt;br /&gt;
&amp;lt;tt&amp;gt;FOOBAR&amp;lt;/tt&amp;gt; it has seen.  This will be useful mainly for symbols that have&lt;br /&gt;
different definitions enabled by an &amp;lt;tt&amp;gt;#ifdef&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Due to a preprocessor limitation, inline macros cannot contain a documentation&lt;br /&gt;
string. If you need to document these macros in the HTML macro reference, you&lt;br /&gt;
can use the following directive:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: docstring FOOBAR&lt;br /&gt;
&lt;br /&gt;
The docstring for the FOOBAR macro will be collected until a non-comment line,&lt;br /&gt;
a &amp;lt;tt&amp;gt;#define&amp;lt;/tt&amp;gt; or another &amp;lt;tt&amp;gt;# wmlscope: docstring&amp;lt;/tt&amp;gt; are found. External&lt;br /&gt;
docstrings '''''must''''' be defined before the macro to which they refer; defining&lt;br /&gt;
two or more external docstrings keeps only the most recent one, but having both an&lt;br /&gt;
external and an internal docstring is allowed (in this case, the internal one&lt;br /&gt;
will be appended to the external one in the macro reference).&lt;br /&gt;
&lt;br /&gt;
This tool does catch one kind of implicit reference: if an attack name&lt;br /&gt;
is specified but no icon is given, the attack icon will default to&lt;br /&gt;
a name generated from the attack name.  This behavior can be suppressed&lt;br /&gt;
by adding a magic comment containing the string &amp;quot;no-icon&amp;quot; to the &amp;lt;tt&amp;gt;name=&amp;lt;/tt&amp;gt;&lt;br /&gt;
line.&lt;br /&gt;
&lt;br /&gt;
The checking done by this tool has a couple of flaws:&lt;br /&gt;
&lt;br /&gt;
(1) It doesn't actually evaluate file inclusions.  Instead, any&lt;br /&gt;
macro definition satisfies any macro call made under the same&lt;br /&gt;
directory.  Exception: when an &amp;lt;tt&amp;gt;#undef&amp;lt;/tt&amp;gt; is detected, the macro is&lt;br /&gt;
tagged local and not visible outside the span of lines where it was&lt;br /&gt;
defined.&lt;br /&gt;
&lt;br /&gt;
(2) It doesn't read &amp;lt;tt&amp;gt;[binary_path]&amp;lt;/tt&amp;gt; tags, as this would require&lt;br /&gt;
implementing a WML parser.  Instead, it assumes that a resource-file&lt;br /&gt;
reference can be satisfied by any matching image file from anywhere&lt;br /&gt;
in the same directory it came from.  The resources under the '''''first'''''&lt;br /&gt;
directory argument (only) are visible everywhere.&lt;br /&gt;
&lt;br /&gt;
(3) A reference with embedded {}s in a macro will have the macro's&lt;br /&gt;
formal args substituted in at WML evaluation time.  Instead, this&lt;br /&gt;
tool treats each {} as a .* wildcard and considers the reference to&lt;br /&gt;
match '''''every''''' resource filename that matches that pattern.&lt;br /&gt;
Under appropriate circumstances this might report a resource filename&lt;br /&gt;
statically matching the pattern as having been referenced even&lt;br /&gt;
though none of the actual macro calls would actually generate it.&lt;br /&gt;
&lt;br /&gt;
Problems (1) and (2) imply that this tool might conceivably report&lt;br /&gt;
that a reference has been satisfied when under actual&lt;br /&gt;
WML-interpreter rules it has not.&lt;br /&gt;
&lt;br /&gt;
The reporting format is compatible with GNU Emacs compile mode.&lt;br /&gt;
&lt;br /&gt;
For debugging purposes, an in-line comment of the form&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: warnlevel NNN&lt;br /&gt;
&lt;br /&gt;
sets the warning level.&lt;br /&gt;
&lt;br /&gt;
== wmllint ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; is a tool for migrating your WML to the current version.  It handles two problems: &lt;br /&gt;
&lt;br /&gt;
* Resource files and macro names may change between versions of the game. &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; knows about these changes and will tweak your WML to fit where it can.&lt;br /&gt;
&lt;br /&gt;
* Between 1.2.x and 1.3.1 the terrain-coding system used in map files underwent a major change. It changed again in a minor way between 1.3.1 and 1.3.2. If you port such old code, use &amp;lt;tt&amp;gt;wmllint-1.4&amp;lt;/tt&amp;gt;, which is located in the same directory as &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;. It will translate your maps for you, unless you use custom terrains in which case you will have to do it by hand.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; also performs various sanity-checking operations, reporting:&lt;br /&gt;
&lt;br /&gt;
* unbalanced tags&lt;br /&gt;
* strings that need a translation mark and do not have them&lt;br /&gt;
* strings that have a translation mark and should not&lt;br /&gt;
* translatable strings containing macro references &lt;br /&gt;
* filter references by description= (id= in 1.5) not matched by an actual unit&lt;br /&gt;
* abilities or traits without matching special notes, or vice-versa&lt;br /&gt;
* consistency between recruit= and recruitment_pattern= instances&lt;br /&gt;
* double space after punctuation in translatable strings.&lt;br /&gt;
* unknown races or movement types in units&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; takes a directory-path argument specifying the WML directories to work on.  It will modify any cfg and map files under those directories that need to be changed.  Here is a summary of its options:&lt;br /&gt;
&lt;br /&gt;
; -h, --help:                 Emit a help message and quit.&lt;br /&gt;
; -c, --clean:                Clean up -bak files.&lt;br /&gt;
; -D, --diffs:                Display diffs between converted and unconverted files.&lt;br /&gt;
; -d, --dryrun:               List changes (-v) but don't perform them.&lt;br /&gt;
; -r, --revert:               Revert the conversion from the -bak files.&lt;br /&gt;
; -m, --missing:              Warn about tags without side= keys now applying to all sides.&lt;br /&gt;
; -s, --stripcr:              Convert DOS-style CR/LF to Unix-style LF.&lt;br /&gt;
; -v, --verbose:              Set verbosity; more details below.&lt;br /&gt;
; -K, --known:                Suppress check for unknown unit types, recruits, races, scenarios, etc.&lt;br /&gt;
; -S, --nospellcheck:         Suppress spellchecking&lt;br /&gt;
; --version:                  show program's version number and exit&lt;br /&gt;
&lt;br /&gt;
The verbosity option works like this:&lt;br /&gt;
&lt;br /&gt;
; -v:          lists changes.&lt;br /&gt;
; -v -v:       warns of maps already converted.&lt;br /&gt;
; -v -v -v:    names each file before it's processed.&lt;br /&gt;
; -v -v -v -v: shows verbose parse details (developers only).&lt;br /&gt;
&lt;br /&gt;
The recommended procedure is this:&lt;br /&gt;
&lt;br /&gt;
# Run it with --dryrun first to see what it will do.&lt;br /&gt;
# If the messages look good, run without --dryrun; the old content will be left in backup files with a -bak extension.&lt;br /&gt;
# Eyeball the changes with the --diff option.&lt;br /&gt;
# Use wmlscope, with a directory path including the Wesnoth mainline WML, to check that you have no unresolved references.&lt;br /&gt;
# Test the conversion.&lt;br /&gt;
# Use either --clean to remove the -bak files or --revert to undo the conversion.&lt;br /&gt;
&lt;br /&gt;
Additionally, wmllint tries to locate a spell checker on your system and spell-checks storyline and message strings.  It will work automatically with any of [https://github.com/AbiWord/enchant enchant]'s spellchecking backends (including aspell, myspell, ispell, applespell, hunspell, nuspell, and so on, depending on the version of enchant), provided you have the &amp;lt;tt&amp;gt;enchant.py&amp;lt;/tt&amp;gt; Python library installed. Note that the spellchecking results can vary depending on which backend enchant decides to use.&lt;br /&gt;
&lt;br /&gt;
wmllint supports a number of magic comments to customize its behaviour and avoid false positives. All magic wmllint comments begin with the string &amp;lt;tt&amp;gt;wmllint:&amp;lt;/tt&amp;gt;, followed by some additional keyword and potentially some arguments. In the below explanations, a string of the form &amp;lt;code&amp;gt;[a|b]&amp;lt;/code&amp;gt; means you may use either &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; at that location, while a string of the form &amp;lt;code&amp;gt;&amp;lt;arg&amp;gt;&amp;lt;/code&amp;gt; indicates free text substitution.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt;: Disables checking of terrains and translation marks on the current line only.&lt;br /&gt;
* &amp;lt;code&amp;gt;noconvert&amp;lt;/code&amp;gt;: Disables conversion of terrains and image/sound filenames on the current line only.&lt;br /&gt;
* &amp;lt;code&amp;gt;markcheck [on|off]&amp;lt;/code&amp;gt;: Enables or disables translation mark checking from the current (next?) line onward.&lt;br /&gt;
* &amp;lt;code&amp;gt;no-icon&amp;lt;/code&amp;gt;: Prevents description insertions (what does that mean?)&lt;br /&gt;
* &amp;lt;code&amp;gt;recognize &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;: Indicates that the character with the given name exists even though a declaration (ie a &amp;lt;code&amp;gt;[unit]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;[side]&amp;lt;/code&amp;gt; tag) is not visible.&lt;br /&gt;
* &amp;lt;code&amp;gt;whofield &amp;lt;macro&amp;gt; &amp;lt;number&amp;gt;&amp;lt;/code&amp;gt;: Indicates that the specified macro declares a character whose name is given by the specified argument to the macro.&lt;br /&gt;
* &amp;lt;code&amp;gt;whofield clear &amp;lt;macro&amp;gt;&amp;lt;/code&amp;gt;: Removes the &amp;lt;code&amp;gt;whofield&amp;lt;/code&amp;gt; definition for the specified macro.&lt;br /&gt;
* &amp;lt;code&amp;gt;who &amp;lt;macro&amp;gt; is &amp;lt;name&amp;gt; &amp;lt;name&amp;gt; ...&amp;lt;/code&amp;gt;: Indicates that the specified macro declares one or more characters whose names are given as a space-separated list. This can also be used for macros that auto-recall a list of characters, some of which join later or may die at some point. If a definition for the macro already exists, then the specified names are appended to it. If a name is preceded by a double minus (&amp;lt;code&amp;gt;-- &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;) then it is removed from the definition.&lt;br /&gt;
* &amp;lt;code&amp;gt;unwho all|&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;: Removes the &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; definition for the specified macro, or all &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; definitions.&lt;br /&gt;
* &amp;lt;code&amp;gt;usage of &amp;quot;&amp;lt;unit&amp;gt;&amp;quot; is &amp;lt;class&amp;gt;&amp;lt;/code&amp;gt;: Declares the usage of the specified unit (the &amp;lt;code&amp;gt;usage=&amp;lt;/code&amp;gt; key in the &amp;lt;code&amp;gt;[unit_type]&amp;lt;/code&amp;gt; tag). Useful if you are using macros to generate several similar unit types.&lt;br /&gt;
* &amp;lt;code&amp;gt;usagetype &amp;lt;class&amp;gt;&amp;lt;/code&amp;gt;: Declares a valid usage type for units. &amp;lt;code&amp;gt;usagetypes&amp;lt;/code&amp;gt; is also recognized, and a comma-separated list of usage types can be specified.&lt;br /&gt;
* &amp;lt;code&amp;gt;validate-[on|off]&amp;lt;/code&amp;gt;: Enables or disables stack-based validation checks. Use when you have unbalanced tags in macros.&lt;br /&gt;
* &amp;lt;code&amp;gt;unbalanced-[on|off]&amp;lt;/code&amp;gt;: Similar to above, the precise difference is unclear.&lt;br /&gt;
* &amp;lt;code&amp;gt;no translatables&amp;lt;/code&amp;gt;: Suppresses warnings about a missing textdomain declaration in the current file. Make sure the file really does have no translatable strings!&lt;br /&gt;
* &amp;lt;code&amp;gt;display [on|off]&amp;lt;/code&amp;gt;: Enable or disable warnings about newlines in messages.&lt;br /&gt;
* &amp;lt;code&amp;gt;notecheck [on|off]&amp;lt;/code&amp;gt;: Enable or disable note consistency checks for unit descriptions.&lt;br /&gt;
* &amp;lt;code&amp;gt;deathcheck [on|off]&amp;lt;/code&amp;gt;: Enable or disable the check for units speaking in their death events.&lt;br /&gt;
* &amp;lt;code&amp;gt;[general|directory|local] spellings &amp;lt;word&amp;gt; &amp;lt;word&amp;gt; ...&amp;lt;/code&amp;gt;: Declares the specified space-separated list of words to be valid spellings in the specified context. The context &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; indicates the current file only, while &amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt; means the current file and any siblings in the same directory or subdirectories. The &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; context indicates the spellings are valid anywhere.&lt;br /&gt;
* &amp;lt;code&amp;gt;no spellcheck&amp;lt;/code&amp;gt;: Disables spell checking on the current line.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip-side&amp;lt;/code&amp;gt;: Indicates that there is a missing side declaration at this location that will be provided by a macro expansion.&lt;br /&gt;
* &amp;lt;code&amp;gt;match &amp;lt;string&amp;gt; with &amp;lt;notes_macro&amp;gt;&amp;lt;/code&amp;gt;: Indicates that uses of the specified string in a unit definition (usually a macro, including the curly braces) should be matched up with the specified special notes macro (which is also specified as the full macro with curly braces).&lt;br /&gt;
* &amp;lt;code&amp;gt;no ellipsecheck&amp;lt;/code&amp;gt;: Disables checking of unit ellipses on the current line.&lt;br /&gt;
&lt;br /&gt;
=== Explanations of &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; diagnostics ===&lt;br /&gt;
Some &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; diagnostics may require further explanation for UMC authors to understand; this section will be for providing such explanations, and descriptions of how to solve and/or silence them.&lt;br /&gt;
&lt;br /&gt;
In these, &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt; will be replaced by a string. When the recommended solution also includes a &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt;, it's a suggestion to copy the string from the error message into your code.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nonstandard word-wrap style within message&amp;lt;/code&amp;gt;: This message meant there was an unexpected newline character within a &amp;lt;code&amp;gt;[message]&amp;lt;/code&amp;gt; tag. However, this check was removed in the 1.15.10 release. Pre-1.15.10, add-on developers could silence by putting a &amp;lt;code&amp;gt;# wmllint: display on&amp;lt;/code&amp;gt; comment before the string and a &amp;lt;code&amp;gt;# wmllint: display off&amp;lt;/code&amp;gt; comment after the string, however, post-1.15.10, this is no longer necessary.&lt;br /&gt;
* &amp;lt;code&amp;gt;%s is not a known unit type&amp;lt;/code&amp;gt; (in cases where you'd think the unit type ''would'' be known): This means the unit has a type that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the mainline unit types. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;unknown speaker '%s' of [message]&amp;lt;/code&amp;gt;: use a &amp;lt;code&amp;gt;# wmllint: recognize %s&amp;lt;/code&amp;gt; magic comment, or, alternatively, if the speaker is created by a macro, use a magic comment of the form of either &amp;lt;code&amp;gt;# wmllint: who MACRO is SPEAKER&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;# wmllint: whofield MACRO NUMBER&amp;lt;/code&amp;gt;, depending on whether the macro takes an argument for the unit's name or not.&lt;br /&gt;
* &amp;lt;code&amp;gt;unknown '%s' referred to by id&amp;lt;/code&amp;gt;: use a &amp;lt;code&amp;gt;# wmllint: recognize %s&amp;lt;/code&amp;gt; magic comment, or, alternatively, if the unit is created by a macro, use a magic comment of the form of either &amp;lt;code&amp;gt;# wmllint: who MACRO is UNIT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;# wmllint: whofield MACRO NUMBER&amp;lt;/code&amp;gt;, depending on whether the macro takes an argument for the unit's name or not.&lt;br /&gt;
* &amp;lt;code&amp;gt;%s has unknown advancements&amp;lt;/code&amp;gt; (in cases where you'd think the advancement ''would'' be known): This means the unit has an advancement that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load mainline units for checking advancements. Note that it's also possible that you just made typo, too, so be sure to check your spelling. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;.description may need hand fixup&amp;lt;/code&amp;gt;: This one comes from mucking around with the &amp;lt;code&amp;gt;.description&amp;lt;/code&amp;gt; field of unit data manually in a hackish fashion. There isn't really much of a way to work around it, besides just the &amp;quot;don't do that&amp;quot; solution.&lt;br /&gt;
* &amp;lt;code&amp;gt;tag stack nonempty (%s) at end of file.&amp;lt;/code&amp;gt;: This means that you have unbalanced tags somewhere in the file, e.g. an opener without a closer, or vice versa. This can often be seen when defining macros for unit abilities. A way to fix this warning is to wrap the section with unbalanced tags with a &amp;lt;code&amp;gt;# wmllint: unbalanced-on&amp;lt;/code&amp;gt; magic comment beforehand and a &amp;lt;code&amp;gt;# wmllint: unbalanced-off&amp;lt;/code&amp;gt; magic comment afterwards. As having unbalanced tags will also cause issues for other WML maintenance tools, such as &amp;lt;tt&amp;gt;wmlindent&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;wmlxgettext&amp;lt;/tt&amp;gt;, you may also want to add separate magic comments for each of them (see their documentation for the form they take).&lt;br /&gt;
* &amp;lt;code&amp;gt;unit declaration without side attribute&amp;lt;/code&amp;gt;: the default side for a unit declaration when left implicit is side 1. Specify your unit sides explicitly to solve this.&lt;br /&gt;
* &amp;lt;code&amp;gt;no %s units recruitable at difficulty %s&amp;lt;/code&amp;gt; (even when there are such units recruitable): This diagnostic has to do with matching the &amp;lt;code&amp;gt;usage&amp;lt;/code&amp;gt; key of units recruitable by an AI side with their &amp;lt;code&amp;gt;recruitment_pattern&amp;lt;/code&amp;gt;. It means the unit has a usage that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can know which mainline units are recruitable. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;%s has unknown movement type&amp;lt;/code&amp;gt; (even when you'd think that that movement type ''would'' actually be known): This means the unit has a movetype that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the mainline movement types. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;%s has unknown race&amp;lt;/code&amp;gt; (even when you'd think that that race ''would'' actually be known): This means the unit has a race that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the mainline races. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;derivation of %s from %s does not resolve&amp;lt;/code&amp;gt; (even when you'd think it would): This means that a unit using the [[UnitTypeWML#Other_tags|[base_unit]]] tag specifies a unit ID in that tag that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the core units for its derivation checks. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;[advancefrom] needs to be manually updated to [modify_unit_type] and moved into the _main.cfg file&amp;lt;/code&amp;gt;: This one is pretty self-explanatory: [[UnitTypeWML#Unit_Type|[advancefrom]]] was deprecated in [https://github.com/wesnoth/wesnoth/commit/3950f40f3f0483032bc70b3e57166bd355acd9fc commit 3950f40] due to [https://github.com/wesnoth/wesnoth/issues/3955 issue #3955], and in fact doesn't even work anymore (in 1.16) as per [https://github.com/wesnoth/wesnoth/issues/6204 issue #6204]. The main reason &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; can't fix this automatically is because it could end up being too complicated for it to figure out which files to edit if there are multiple uses of &amp;lt;code&amp;gt;[advancefrom]&amp;lt;/code&amp;gt;, and it also doesn't want to assume where to put the [[ModificationWML|[modify_unit_type]]] tag in &amp;lt;tt&amp;gt;_main.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== wmlindent ==&lt;br /&gt;
&lt;br /&gt;
Call with no arguments to filter WML on standard input to reindented WML on&lt;br /&gt;
standard output.  If arguments are specified, they are taken to be files to be&lt;br /&gt;
re-indented in place; a directory name causes reindenting on all WML&lt;br /&gt;
beneath it.&lt;br /&gt;
&lt;br /&gt;
The indent unit is four spaces.  Absence of an option to change this is&lt;br /&gt;
deliberate; the purpose of this tool is to ''prevent'' style wars, not encourage&lt;br /&gt;
them.&lt;br /&gt;
&lt;br /&gt;
On non-empty lines, this code never modifies anything but leading and&lt;br /&gt;
trailing whitespace. Leading whitespace will be regularized to the&lt;br /&gt;
current indent; trailing whitespace will be stripped.  After processing&lt;br /&gt;
all lines will end with a Unix-style &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; end-of-line marker.&lt;br /&gt;
&lt;br /&gt;
Runs of entirely blank lines will be reduced to one blank line, except&lt;br /&gt;
in two cases where they will be discarded: (a) before WML closing&lt;br /&gt;
tags, and (b) after WML opening tags.&lt;br /&gt;
&lt;br /&gt;
It is possible to wrap a section of lines in special comments so that&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlindent&amp;lt;/tt&amp;gt; will ignore them.  You may need to do this for unbalanced&lt;br /&gt;
macros (it's better, though, to get rid of those where possible).&lt;br /&gt;
Use '&amp;lt;code&amp;gt;wmlindent: {start,stop} ignoring&amp;lt;/code&amp;gt;' anywhere in a comment.&lt;br /&gt;
&lt;br /&gt;
It is also possible to declare custom openers an closers, e.g for macros&lt;br /&gt;
that are actually control constructs.  To do this, use declarations&lt;br /&gt;
&lt;br /&gt;
    # wmlindent: opener &amp;quot;{EXCEPTIONAL_OPENER &amp;quot;&lt;br /&gt;
    # wmlindent: closer &amp;quot;{EXCEPTIONAL_CLOSER &amp;quot;&lt;br /&gt;
&lt;br /&gt;
The lines after an opener will be indented an extra level; a closer&lt;br /&gt;
and lines following will be indented one level less. Note that these&lt;br /&gt;
declare prefixes; any prefix match to the non-whitespace text of a line&lt;br /&gt;
will be recognized.&lt;br /&gt;
&lt;br /&gt;
The public utility macros &amp;quot;&amp;lt;code&amp;gt;{FOREACH&amp;lt;/code&amp;gt;&amp;quot; and &amp;quot;&amp;lt;code&amp;gt;{NEXT&amp;lt;/code&amp;gt;&amp;quot; come as wired-in exceptions,&lt;br /&gt;
because it is not guaranteed that their indent declarations will be processed&lt;br /&gt;
before the macro library is reached.&lt;br /&gt;
&lt;br /&gt;
Interrupting &amp;lt;tt&amp;gt;wmlindent&amp;lt;/tt&amp;gt; ought to be safe, as each reindenting will be done to a copy&lt;br /&gt;
that is atomically renamed when it's done.  If the output file is identical&lt;br /&gt;
to the input, the output file will simply be deleted, so the timestamp&lt;br /&gt;
on the input file won't be touched.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;--dryrun&amp;lt;/tt&amp;gt; option detects and reports files that would be changed&lt;br /&gt;
without changing them. The &amp;lt;tt&amp;gt;--verbose&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;-v&amp;lt;/tt&amp;gt; option enables reporting&lt;br /&gt;
of files that are (or would be, under &amp;lt;tt&amp;gt;--dryrun&amp;lt;/tt&amp;gt;) changed.  With &amp;lt;tt&amp;gt;-v -v&amp;lt;/tt&amp;gt;,&lt;br /&gt;
unchanged files are also reported.  The &amp;lt;tt&amp;gt;--exclude&amp;lt;/tt&amp;gt; option takes a regexp&lt;br /&gt;
and excludes files matching it.&lt;br /&gt;
&lt;br /&gt;
If you don't apply this tool to your own WML that you wish to submit, the&lt;br /&gt;
mainline-campaign maintainers will do it when and if your code is accepted into the tree.&lt;br /&gt;
&lt;br /&gt;
Note: This tool does not include a parser.  It will produce bad results on WML&lt;br /&gt;
that is syntactically unbalanced.  Unbalanced double quotes that aren't part&lt;br /&gt;
of a multiline literal will also confuse it.  You will receive warnings&lt;br /&gt;
if there's an indent open at end of file or if a closer occurs with&lt;br /&gt;
indent already zero; these two conditions strongly suggest unbalanced WML.&lt;br /&gt;
&lt;br /&gt;
== GUI.pyw ==&lt;br /&gt;
&lt;br /&gt;
Starting from version 1.11.15 and 1.13.0, a GUI (written in Tkinter, plus the themed widgets ttk) is available in the same directory as the other tools. To use it, you need to have a version of Python equal to or greater than 3.1.0 (the 3.0.x series doesn't include the ttk widgets, and as such is unsuitable for this script).&lt;br /&gt;
&lt;br /&gt;
If you're on Linux, be sure to have installed the ''python3-tk'' module, '''or the application won't run at all'''. To install it in a Debian-based distro (like Ubuntu), type this line in a Terminal:&lt;br /&gt;
 sudo apt install python3-tk&lt;br /&gt;
&lt;br /&gt;
To start it, just double click on the GUI.pyw file. The interface is pretty much self-explanatory, and allows you to run wmllint, wmlscope, wmlindent and wmlxgettext, modify their options, select an add-on and save the tools' output as a text file.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Translation Maintenance Commands]] (for &amp;lt;tt&amp;gt;wmlxgettext&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Category:Create]]&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettextForWesnothDevelopers&amp;diff=74003</id>
		<title>GettextForWesnothDevelopers</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettextForWesnothDevelopers&amp;diff=74003"/>
		<updated>2024-11-21T17:05:18Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Generating the .mo files for UMC */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is used to help Wesnoth developers and UMC authors to work with the internationalization (i18n) system, based on GNU gettext.&lt;br /&gt;
&lt;br /&gt;
==  General design of gettext use  ==&lt;br /&gt;
&lt;br /&gt;
Programs using Gettext include the strings in one language (usually English) within the source code. For each target language, a separate file provides a look-up table from English to that language. If the file is missing or doesn't have a translation for that string, the system falls back to using the English text.&lt;br /&gt;
&lt;br /&gt;
The translation mechanism usually involves a function or macro called ''_'' (a single underscore sign). Examples are in the programming-language specific sections below.&lt;br /&gt;
&lt;br /&gt;
=== Textdomains ===&lt;br /&gt;
&lt;br /&gt;
Gettext splits translations into domains. For Wesnoth, the general idea is to use distinct textdomains for each campaign or add-on, so that UMC authors can easily ship translations together with their campaigns. These domains are covered in more depth in [[GettextForTranslators]].&lt;br /&gt;
&lt;br /&gt;
The convention is to name each domain using the name of the add-on, or just its initials. For example, ''wesnoth-utbs'' or ''wesnoth-Son_of_Haldric''. For UMC, it probably makes sense to use the full name to ensure that it doesn't clash with another add-on.&lt;br /&gt;
&lt;br /&gt;
=== Caret hints ===&lt;br /&gt;
&lt;br /&gt;
Some strings look the same in English but should not necessarily look identical in translations. To handle this, those strings can be prefixed with any descriptive string and a '''^''' character. For users viewing in '''en_US''', these hints will be automatically removed from the string before showing it to the user.&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.15|2}} if the string contains more than one '''^''', the descriptive string ends at the first '''^''', everything following the first '''^''' will be shown to the user.&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.15|18}} When using gettext's Plural Forms, these prefixes can and should be used in both the singular and the plural.&lt;br /&gt;
&lt;br /&gt;
=== UTF-8 ===&lt;br /&gt;
&lt;br /&gt;
For translation, all C++, WML and Lua files should be in UTF-8. As noted in the [[Typography_Style_Guide]], some punctuation should be used that's outside of the ASCII subset.&lt;br /&gt;
&lt;br /&gt;
==  Marking up strings in C++  ==&lt;br /&gt;
&lt;br /&gt;
In C++, you can mark up strings for translations using the &amp;lt;syntaxhighlight lang=c++ inline&amp;gt;_(&amp;quot;A translation&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt; and &amp;lt;syntaxhighlight lang=c++ inline&amp;gt;_n(&amp;quot;Translation&amp;quot;, &amp;quot;Translations&amp;quot;, int)&amp;lt;/syntaxhighlight&amp;gt; macros. The &amp;lt;code&amp;gt;_n&amp;lt;/code&amp;gt; macro is to be used if the string has a singular and plural form.&lt;br /&gt;
&lt;br /&gt;
You can also add comments for translators. Single-line comments must start with &amp;lt;code&amp;gt;TRANSLATORS:&amp;lt;/code&amp;gt; and be on the line ''immediately'' above the translatable string. For multi-line comments, the &amp;lt;code&amp;gt;TRANSLATORS:&amp;lt;/code&amp;gt; only needs to be on the first line to include the whole comment, and the last line must be immediately above the translatable string.&lt;br /&gt;
&lt;br /&gt;
If the string contains any placeholders, '''don't''' use &amp;lt;code&amp;gt;snprintf&amp;lt;/code&amp;gt;. Instead use WML style variables, put their values in a &amp;lt;syntaxhighlight lang=c++ inline&amp;gt;utils::string_map&amp;lt;/syntaxhighlight&amp;gt; and use the &amp;lt;code&amp;gt;VGETTEXT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;VNGETTEXT&amp;lt;/code&amp;gt; macros instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=c++&amp;gt;&lt;br /&gt;
utils::string_map symbols;&lt;br /&gt;
symbols[&amp;quot;enemies&amp;quot;] = std::to_string(enemy_count_);&lt;br /&gt;
symbols[&amp;quot;friends&amp;quot;] = std::to_string(friend_count_);&lt;br /&gt;
std::string message;&lt;br /&gt;
if ( friend_count_ != 0  &amp;amp;&amp;amp;  enemy_count_ != 0 ) {&lt;br /&gt;
	// Omitted from the example - see the code in src/action/move.cpp for how to handle strings with two independent ints.&lt;br /&gt;
} else if ( enemy_count_ != 0 ) {&lt;br /&gt;
	// TRANSLATORS: Only enemies sighted -- bad message.&lt;br /&gt;
	// This is shown when a move is interrupted because units were revealed from the fog of war.&lt;br /&gt;
	message = VNGETTEXT(&amp;quot;Enemy unit sighted!&amp;quot;, &amp;quot;$enemies enemy units sighted!&amp;quot;, enemy_count_, symbols);&lt;br /&gt;
} else if ( friend_count_ != 0 ) {&lt;br /&gt;
	// TRANSLATORS: Only friends sighted -- good message.&lt;br /&gt;
	// This is shown when a move is interrupted because units were revealed from the fog of war.&lt;br /&gt;
	message = VNGETTEXT(&amp;quot;Friendly unit sighted&amp;quot;, &amp;quot;$friends friendly units sighted&amp;quot;, friend_count_, symbols);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;string_map&amp;lt;/code&amp;gt; can contain additional values that aren't used in the translated string. In the example above, it has both ''friends'' and ''enemies''.&lt;br /&gt;
&lt;br /&gt;
By default, all strings in C++ belong to the &amp;quot;wesnoth&amp;quot; textdomain. If a different textdomain is required, you can add a textdomain binding at the top of the source file, before any include statements. A textdomain binding looks like this: &amp;lt;syntaxhighlight lang=c++&amp;gt;#define GETTEXT_DOMAIN &amp;quot;wesnoth-lib&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should avoid placing translatable strings in C++ headers if at all possible. Though there are a few places where it may be unavoidable, such as if templates are in use, it creates the risk of the strings sometimes being looked up in the wrong textdomain if the header is included in multiple files with different textdomains. If possible, always factor the translatable strings out into a source file.&lt;br /&gt;
&lt;br /&gt;
Don't wrap the existing macros in more macros, as the .pot files are generated by gettext. Gettext isn't a full C++ parser, it's just searching for arguments to functions and macros in this list: &amp;lt;code&amp;gt;_ N_ _n N_n VGETTEXT VNGETTEXT sgettext vgettext sngettext vngettext&amp;lt;/code&amp;gt;. That list is defined in cmake/FindTranslationTools.cmake and po/SConscript.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;N_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;N_n&amp;lt;/code&amp;gt; macros are used equivalently to &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_n&amp;lt;/code&amp;gt;, but return the source string instead of the translated string – this can be used to manually look up the translation later. This is something of a niche use-case however, and most of the time you should prefer to use &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Marking up strings in WML ==&lt;br /&gt;
&lt;br /&gt;
=== The textdomain bindings ===&lt;br /&gt;
&lt;br /&gt;
All files with translatable strings must declare which textdomain they use, which is normally done by putting ''#textdomain'' on the first line of each .wml file. See the example below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
#textdomain wesnoth-Son_of_Haldric&lt;br /&gt;
&lt;br /&gt;
[unit_type]&lt;br /&gt;
    id=Mu&lt;br /&gt;
    name= _ &amp;quot;Mu&amp;quot;&lt;br /&gt;
    # ...&lt;br /&gt;
[/unit_type]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it is highly recommended that the first textdomain binding be on the first line of the file. Otherwise, odd stuff may happen.&lt;br /&gt;
&lt;br /&gt;
=== The translatable strings ===&lt;br /&gt;
&lt;br /&gt;
To mark a string as translatable, just put an underscore ( _ ) in front of the string you wish to be marked as translatable, like the example below. When parsing this, the engine will record both the visible text and the active textdomain, which can later be used to get the translation when displaying the text to the player.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
name= _ &amp;quot;Mu&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Notes to the translators ====&lt;br /&gt;
&lt;br /&gt;
If you think a translatable string needs additional guidance to be translated properly, you can provide a special comment that will be seen by the translators. Some hints are generated automatically, but in general if you have to wonder whether a hint is needed then it probably is. The context of the scenario isn't obvious in the translation tools, and you can't assume that the strings are shown to the translator in the same order that they appear in the WML file.&lt;br /&gt;
&lt;br /&gt;
Just begin the comment with '#po:' or '# po:' above the string in question. This must be on the line (or lines) immediately before the string that the hint applies to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
#po: &amp;quot;northern marches&amp;quot; is *not* a typo for &amp;quot;northern marshes&amp;quot; here.&lt;br /&gt;
#po: In archaic English, &amp;quot;march&amp;quot; means &amp;quot;border country&amp;quot;.&lt;br /&gt;
story=_ &amp;quot;The orcs were first sighted from the north marches of the great forest of Wesmere.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wmlxgettext tool will automatically generate hints for some tags, in addition to hints from '# po:' comments:&lt;br /&gt;
&lt;br /&gt;
* For ''[message]'': the ''id'', ''speaker'', ''role'' or ''type'' used to choose the speaker&lt;br /&gt;
* For ''[object]'': the ''id''&lt;br /&gt;
* For ''[unit]'': the ''id'' and ''unit_type''&lt;br /&gt;
* For ''[unit_type]'': the ''id'' and ''race''&lt;br /&gt;
* For ''[objective]'': whether it's ''condition=win'' or ''condition=lose''&lt;br /&gt;
&lt;br /&gt;
==== Things to avoid ====&lt;br /&gt;
&lt;br /&gt;
Note that there are certain things you should never do. For example, '''never''' mark an empty string as translatable, for wmlxgettext (the tool that extracts strings from WML) will abort upon detecting one. Therefore, what is seen below should never be done:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
name= _ &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, never put macro arguments in a translatable string, for it will not work. The reason for this is that the preprocessor does its job before gettext, thus gettext will try to replace a string that does not exist. Therefore, what is shown below should not be done:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
name= _ &amp;quot;{TYPE} Mu&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To show why it will not work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
#define UNIT_NAME TYPE&lt;br /&gt;
    name= _ &amp;quot;{TYPE} Mu&amp;quot;&lt;br /&gt;
#enddef&lt;br /&gt;
&lt;br /&gt;
{UNIT_NAME ( _ &amp;quot;Sword&amp;quot;)}&lt;br /&gt;
{UNIT_NAME ( _ &amp;quot;Bow&amp;quot;)}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
Translation catalogues would have this: &amp;quot;{TYPE} Mu&amp;quot;, therefore gettext will look for it even though it will not exist because we, in fact, have these after the preprocessor is done:&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
name= _ &amp;quot;Sword Mu&amp;quot;&lt;br /&gt;
name= _ &amp;quot;Bow Mu&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
Since those are not in the catalogues, they will not get translated.&lt;br /&gt;
&lt;br /&gt;
=== Gender-specific strings ===&lt;br /&gt;
&lt;br /&gt;
Several tags, including ''[message]'', ''[abilities]'' and ''[trait]'', can choose different strings based on the gender of the unit. In English the two versions are likely to be the same, but other languages may have gender-specific words for 'I' or 'me'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
[message]&lt;br /&gt;
    speaker=student&lt;br /&gt;
    message= _ &amp;quot;Have you found an orc for me to fight, huh? A troll?&amp;quot;&lt;br /&gt;
    female_message= _ &amp;quot;female^Have you found an orc for me to fight, huh? A troll?&amp;quot;&lt;br /&gt;
[/message]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The convention in WML is, as above, to use ''message='' and ''female_message='', with the latter string including the prefix ''female^''. The mechanism also supports ''male_message='', but all units will fall back to using the plain ''message='' value if there isn't gender-specific version that matches their gender.&lt;br /&gt;
&lt;br /&gt;
The message is chosen based on the gender of the speaking unit. To change the message based on the gender of another unit requires separate ''[message]'' tags:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
[if]&lt;br /&gt;
    [have_unit]&lt;br /&gt;
        id=student&lt;br /&gt;
        gender=male&lt;br /&gt;
    [/have_unit]&lt;br /&gt;
    [then]&lt;br /&gt;
        [message]&lt;br /&gt;
            speaker=Delfador&lt;br /&gt;
            message= _ &amp;quot;Young man, you have $student_hp hitpoints and a sword. I’m fairly sure you’ll win.&amp;quot;&lt;br /&gt;
        [/message]&lt;br /&gt;
    [/then]&lt;br /&gt;
    [else]&lt;br /&gt;
        [message]&lt;br /&gt;
            speaker=Delfador&lt;br /&gt;
            message= _ &amp;quot;female^Young lady, you have $student_hp hitpoints and a sword. I’m fairly sure you’ll win.&amp;quot;&lt;br /&gt;
        [/message]&lt;br /&gt;
    [/else]&lt;br /&gt;
[/if]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using a macro to encapsulate most of that can be useful. The example above is from the tutorial, after expanding the ''GENDER'' macro which is defined in data/campaigns/tutorial/utils/utils.cfg.&lt;br /&gt;
&lt;br /&gt;
=== Proper nouns in strings ===&lt;br /&gt;
&lt;br /&gt;
Some languages require declensions of proper nouns - a person's name may change slightly depending on their role in a sentence. See for example [https://github.com/hrubymar10/wesnoth-cs/pull/209#issuecomment-1066163433 the Czech translators' PR 209].&lt;br /&gt;
&lt;br /&gt;
Where there are a small number of units that might be addressed, for example the two in the tutorial or the four possible allies in UtBS, it's better to have a separate translatable string for each possible character instead of interpolating '''$unit.name''' into a string.&lt;br /&gt;
&lt;br /&gt;
=== Reusing mainline translations ===&lt;br /&gt;
&lt;br /&gt;
You can reuse translations for strings in mainline domains by using multiple textdomain bindings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
# textdomain wesnoth-Son_of_Haldric&lt;br /&gt;
&lt;br /&gt;
[unit_type]&lt;br /&gt;
    id=Mu&lt;br /&gt;
    name= _ &amp;quot;Mu&amp;quot;&lt;br /&gt;
    # ...&lt;br /&gt;
&lt;br /&gt;
    [attack]&lt;br /&gt;
        id=sword&lt;br /&gt;
        #textdomain wesnoth-units&lt;br /&gt;
        description= _ &amp;quot;sword&amp;quot;&lt;br /&gt;
        # ...&lt;br /&gt;
    [/attack]&lt;br /&gt;
   &lt;br /&gt;
    #textdomain wesnoth-Son_of_Haldric&lt;br /&gt;
    # ...&lt;br /&gt;
[/unit_type]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, if you use bindings for multiple textdomains, make sure the right parts of the file are bound to the right domains. Also, never try to use the mainline campaigns’ domains, for there is no guarantee that the mainline campaigns will be available on all setups. So, only use the core domains: wesnoth, wesnoth-editor, wesnoth-lib, wesnoth-help, and wesnoth-units.&lt;br /&gt;
&lt;br /&gt;
==== The gettext helper file ====&lt;br /&gt;
&lt;br /&gt;
A gettext helper file is a lovely file that makes reusing mainline translations nice and easy, by having all strings that should use a specific textdomain in a single file. It is also more wmllint-friendly.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a gettext helper file. The macro names start with 'SOH_' to ensure that they don't clash with another add-on's macros (assuming that this add-on is Son_of_Haldric).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
#textdomain wesnoth-lib&lt;br /&gt;
&lt;br /&gt;
#define SOH_STR_ICE&lt;br /&gt;
_&amp;quot;Ice&amp;quot; #enddef&lt;br /&gt;
&lt;br /&gt;
#textdomain wesnoth-units&lt;br /&gt;
&lt;br /&gt;
#define SOH_STR_SWORD&lt;br /&gt;
_&amp;quot;sword&amp;quot; #enddef&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A typical name for gettext helper files is ''mainline-strings.cfg''.&lt;br /&gt;
&lt;br /&gt;
To use it, just wire it into your add-on and use the macros:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
[attack]&lt;br /&gt;
    id=sword&lt;br /&gt;
    name={SOH_STR_SWORD}&lt;br /&gt;
    # ...&lt;br /&gt;
[/attack]&lt;br /&gt;
&lt;br /&gt;
[terrain_type]&lt;br /&gt;
    id=ice2&lt;br /&gt;
    name={SOH_STR_ICE}&lt;br /&gt;
    # ...&lt;br /&gt;
[/terrain_type]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unbalanced WML macros ===&lt;br /&gt;
&lt;br /&gt;
WML macros can be ''unbalanced'', meaning that they either include a [tag] without the corresponding [/tag] or a [/tag] before the corresponding [+tag]. These macros are expected to be used in a place where the [tag] is already open. Writing new macros using this isn't recommended; instead please ask in the WML Workshop forum about better ways to do it.&lt;br /&gt;
&lt;br /&gt;
When generating the .pot files for translation, wmlxgettext may stop with one of the errors&lt;br /&gt;
* error: Son_Of_Haldric/utils/abilities.cfg:29: unexpected closing tag '[/abilities]' outside any scope.&lt;br /&gt;
* error: Son_Of_Haldric/utils/abilities.cfg:300: End of WML file reached, but some tags were not properly closed. (nearest unclosed tag is: [abilities])&lt;br /&gt;
&lt;br /&gt;
Suppose abilities.cfg line 29 is in the definition of SOH_ABILITY_BLITZ. To get the .pot file generated, the simplest change is to use ''# wmlxgettext'' comments to add the missing opening or closing tags:&lt;br /&gt;
&lt;br /&gt;
 # wmllint: unbalanced-on&lt;br /&gt;
 # wmlxgettext: [abilities]&lt;br /&gt;
 #define SOH_ABILITY_BLITZ&lt;br /&gt;
     [dummy]&lt;br /&gt;
         id=soh_blitz&lt;br /&gt;
         # ... ability definition stuff ...&lt;br /&gt;
     [/dummy]&lt;br /&gt;
 [/abilities]&lt;br /&gt;
 # ... several lines of code, none of which are an ''#enddef'' ...&lt;br /&gt;
 [+abilities] # wmlxgettext: [/abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
 # wmllint: unbalanced-off&lt;br /&gt;
&lt;br /&gt;
== Marking up strings in Lua ==&lt;br /&gt;
&lt;br /&gt;
In Lua code, textdomains are a callable object that looks up a string. This has support for both singular and plural strings. By convention, the name &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; is usually used for the textdomain object.&lt;br /&gt;
&lt;br /&gt;
The following sample code demonstrates how to fetch translatable strings in Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=lua&amp;gt;&lt;br /&gt;
local _ = wesnoth.textdomain &amp;quot;wesnoth&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Look up a normal string:&lt;br /&gt;
local win_condition = _ &amp;quot;Defeat enemy leader(s)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Hints for the translators start with &amp;quot;po:&amp;quot;, as in WML:&lt;br /&gt;
-- po: Floating text shown when a unit with the &amp;quot;feeding&amp;quot; ability gets a kill&lt;br /&gt;
local text = stringx.vformat(_&amp;quot;+$value max HP&amp;quot;, { value = feeding.value})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Plural strings are supported since Wesnoth 1.14:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=lua&amp;gt;&lt;br /&gt;
local turn_count = 5&lt;br /&gt;
turn_counter = _(&amp;quot;this turn left&amp;quot;, &amp;quot;%d turns left&amp;quot;, turn_count)&lt;br /&gt;
turn_counter = tostring(turn_counter):format(turn_count)&lt;br /&gt;
&lt;br /&gt;
-- For readability, the example's strings are slightly different to the real code.&lt;br /&gt;
-- The real strings have brackets in the text shown to the player.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Wesnoth 1.15, variables can be interpolated using names:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=lua&amp;gt;&lt;br /&gt;
-- Look up a plural string, using the preferred style (as of Wesnoth 1.15.3):&lt;br /&gt;
local turn_count = 5&lt;br /&gt;
turn_counter = _(&amp;quot;this turn left&amp;quot;, &amp;quot;$remaining_turns turns left&amp;quot;, turn_count)&lt;br /&gt;
turn_counter = turn_counter:vformat{remaining_turns = turn_count}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The textdomain tag ==&lt;br /&gt;
&lt;br /&gt;
To tell the engine where to search for the .po and .mo files, each textdomain needs a ''[textdomain]'' tag. For add-ons and mainline campaigns, the tag is usually placed inside of the _main.cfg. This is a top-level tag, so should be outside the ''[campaign]'' or ''[modification]'' tag.&lt;br /&gt;
&lt;br /&gt;
Translatable strings from C++ and Lua use the same textdomains as WML; this WML tag tells the engine where to search for these strings irrespective of which programming language the string appeared in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
[textdomain]&lt;br /&gt;
    name=&amp;quot;wesnoth-Son_of_Haldric&amp;quot;&lt;br /&gt;
    path=&amp;quot;data/add-ons/Son_of_Haldric/translations&amp;quot;&lt;br /&gt;
[/textdomain]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The .po (or .mo) files will be loaded from a subdirectory of the ''translations'' directory.&lt;br /&gt;
&lt;br /&gt;
== Generating the .pot and .po files for UMC ==&lt;br /&gt;
&lt;br /&gt;
For each language, Wesnoth will search for a .po file containing the translations. How to create that file will be explained below, but first the overview of where it should go. Continuing with the Son of Haldric example, the Swedish translation would be in the file:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric/translations/wesnoth-Son_of_Haldric/sv.po'' .&lt;br /&gt;
&lt;br /&gt;
That comes from:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric/translations'' comes from the ''[textdomain]'' tag's ''path''&lt;br /&gt;
* ''wesnoth-Son_of_Haldric'' is the textdomain's name&lt;br /&gt;
* ''sv'' is the language code for Swedish. The codes for each language are given in the big table on [https://www.wesnoth.org/gettext/ https://www.wesnoth.org/gettext/] .&lt;br /&gt;
&lt;br /&gt;
Wesnoth 1.14 (but not 1.12) supports reading .po files directly, so when you add the .po file and the new translation should appear as soon as you refresh the cache.&lt;br /&gt;
&lt;br /&gt;
=== Generating the .pot file ===&lt;br /&gt;
&lt;br /&gt;
The template (.pot) file contains all of the strings that need to be translated in the .po files, but without the translations.&lt;br /&gt;
&lt;br /&gt;
The .pot is generated from WML and Lua files using a tool called wmlxgettext. With Wesnoth 1.14.5 and later, this is shipped with Wesnoth itself as part of the [[Maintenance_tools]] and can be used from the Maintenance Tools' GUI. At the moment it's not documented on that page, but if you follow the instructions to get GUI.pyw running then you'll see there's a wmlxgettext tab.&lt;br /&gt;
&lt;br /&gt;
Pre-1.13 instructions on how to get and use it are in Nobun's [https://r.wesnoth.org/p617733 forum posting].&lt;br /&gt;
&lt;br /&gt;
==== Error messages from wmlxgettext ====&lt;br /&gt;
&lt;br /&gt;
If you get the error from ''wmlxgettext'' of &amp;quot;UTF-8 Format error. Can't decode byte 0x91 (invalid start byte).&amp;quot;, and the line in question has a curly quotation mark, that likely means that your text editor is using the Windows-1252 character set, and you need to replace the Windows quotes with their Unicode equivalents, see [[Typography_Style_Guide]] and your editor's documentation for more info. The same applies if the error message says 0x92, 0x93 or 0x94.&lt;br /&gt;
&lt;br /&gt;
If you get either &amp;quot;unexpected closing tag '[/''something'']' outside any scope&amp;quot; or &amp;quot;End of WML file reached, but some tags were not properly closed. (nearest unclosed tag is: [''something''])&amp;quot; then see [[#Unbalanced_WML_macros]] above.&lt;br /&gt;
&lt;br /&gt;
=== Generating the .po files for each language ===&lt;br /&gt;
&lt;br /&gt;
Each .po file can start as a simple copy of the .pot file. Either the author or the translator copies the template to the language-specific filename, and then the work of [[GettextForTranslators]] happens on those copies.&lt;br /&gt;
&lt;br /&gt;
Some .po editors, for example poedit, will recognise that the .pot is a template, and automatically suggest saving to a different filename. The poedit editor can also update a .po file based on changes to the .pot file.&lt;br /&gt;
&lt;br /&gt;
=== Generating the .mo files for UMC ===&lt;br /&gt;
&lt;br /&gt;
For Wesnoth 1.14 and later, it's generally not necessary to compile the .po files to .mo files. The mainline translations still use .mo files for better performance, but UMC authors can skip the .mo compilation stage.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[WesnothTranslations]]&lt;br /&gt;
* http://www.gnu.org/software/gettext/&lt;br /&gt;
* [https://www.gnu.org/software/gettext/manual/html_node/Preparing-Strings.html#Preparing-Strings GNU gettext manual on preparing translatable strings]&lt;br /&gt;
* [[GetText]]&lt;br /&gt;
* [https://wmlxgettext-unoff.readthedocs.io/en/latest/ wmlxgettext documentation]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=73976</id>
		<title>User:Egallager</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=73976"/>
		<updated>2024-11-09T18:54:45Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Elsewhere on the web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Hi, I am Eric Gallager. I am from New Hampshire.&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
I also go by [https://forums.wesnoth.org/memberlist.php?mode=viewprofile&amp;amp;u=219741 egallager] on the forums.&lt;br /&gt;
Here are links to the topics I've either started, or that are for campaigns I've taken over:&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53597 Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53601 A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47885 A Little Adventure]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800 The Earth's Gut]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Flight to Freedom]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24967 The War of Terrador]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486 A New Order]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 Dawn of Thunder]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=7&amp;amp;t=54568 Call for translators (for my add-ons in general)]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=6&amp;amp;t=54369 Discussion of a Japanese &amp;quot;Let's Play&amp;quot; introduction to Wesnoth]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57132 Word association]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57215 Mainlining popular UMC tracks]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57225 Categorizing UMC music by moods]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=58854 Floods of Irdya]&lt;br /&gt;
&lt;br /&gt;
== Elsewhere on the web ==&lt;br /&gt;
I go by [https://github.com/cooljeanius &amp;quot;cooljeanius&amp;quot;] on GitHub (it's an old handle), and keep the sources for many of my Wesnoth things on there:&lt;br /&gt;
* [https://github.com/cooljeanius/wesnoth_mods generalized mods collection]&lt;br /&gt;
* [https://github.com/cooljeanius/Son_Of_The_Black_Eye_Easy_Edition Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://github.com/cooljeanius/Saving_Elensefar Saving Elensefar]&lt;br /&gt;
* [https://github.com/cooljeanius/dawn_of_thunder Dawn of Thunder]&lt;br /&gt;
* [https://github.com/cooljeanius/Two_Brothers_With_A_Third_Difficulty A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://github.com/cooljeanius/The_War_of_Terrador The War of Terrador]&lt;br /&gt;
* [https://github.com/cooljeanius/A_New_Order A New Order] (with a separate repo, [https://github.com/cooljeanius/ANO_art ANO_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/A_Little_Adventure A Little Adventure] (with a separate repo, [https://github.com/cooljeanius/ALA_art ALA_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/The_Earths_Gut The Earth's Gut] (with a separate repo, [https://github.com/cooljeanius/TEG_art TEG_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom Flight to Freedom]&lt;br /&gt;
* &amp;lt;s&amp;gt;[https://github.com/cooljeanius/Roboke Roboke]&amp;lt;/s&amp;gt; (Archived)&lt;br /&gt;
I also use that handle elsewhere, such as on Wikipedia: [https://en.wikipedia.org/wiki/User:Cooljeanius https://en.wikipedia.org/wiki/User:Cooljeanius]&lt;br /&gt;
&lt;br /&gt;
== This wiki ==&lt;br /&gt;
I have been editing (and intend to edit further) the following pages: [[ReferenceWML]], [[CharactersStorys]], [[Guide to UMC Content]], [[Glossary]], [[Maintenance tools]], and [[Available Music]].&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=73975</id>
		<title>User:Egallager</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=73975"/>
		<updated>2024-11-09T18:52:58Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Forums */ +1 link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Hi, I am Eric Gallager. I am from New Hampshire.&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
I also go by [https://forums.wesnoth.org/memberlist.php?mode=viewprofile&amp;amp;u=219741 egallager] on the forums.&lt;br /&gt;
Here are links to the topics I've either started, or that are for campaigns I've taken over:&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53597 Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53601 A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47885 A Little Adventure]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800 The Earth's Gut]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Flight to Freedom]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24967 The War of Terrador]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486 A New Order]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 Dawn of Thunder]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=7&amp;amp;t=54568 Call for translators (for my add-ons in general)]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=6&amp;amp;t=54369 Discussion of a Japanese &amp;quot;Let's Play&amp;quot; introduction to Wesnoth]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57132 Word association]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57215 Mainlining popular UMC tracks]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57225 Categorizing UMC music by moods]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=58854 Floods of Irdya]&lt;br /&gt;
&lt;br /&gt;
== Elsewhere on the web ==&lt;br /&gt;
I go by [https://github.com/cooljeanius &amp;quot;cooljeanius&amp;quot;] on GitHub (it's an old handle), and keep the sources for many of my Wesnoth things on there:&lt;br /&gt;
* [https://github.com/cooljeanius/wesnoth_mods generalized mods collection]&lt;br /&gt;
* [https://github.com/cooljeanius/Son_Of_The_Black_Eye_Easy_Edition Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://github.com/cooljeanius/Saving_Elensefar Saving Elensefar]&lt;br /&gt;
* [https://github.com/cooljeanius/dawn_of_thunder Dawn of Thunder]&lt;br /&gt;
* [https://github.com/cooljeanius/Two_Brothers_With_A_Third_Difficulty A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://github.com/cooljeanius/The_War_of_Terrador The War of Terrador]&lt;br /&gt;
* [https://github.com/cooljeanius/A_New_Order A New Order] (with a separate repo, [https://github.com/cooljeanius/ANO_art ANO_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/A_Little_Adventure A Little Adventure] (with a separate repo, [https://github.com/cooljeanius/ALA_art ALA_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/The_Earths_Gut The Earth's Gut] (with a separate repo, [https://github.com/cooljeanius/TEG_art TEG_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom Flight to Freedom]&lt;br /&gt;
* [https://github.com/cooljeanius/Roboke Roboke]&lt;br /&gt;
I also use that handle elsewhere, such as on Wikipedia: [https://en.wikipedia.org/wiki/User:Cooljeanius https://en.wikipedia.org/wiki/User:Cooljeanius]&lt;br /&gt;
&lt;br /&gt;
== This wiki ==&lt;br /&gt;
I have been editing (and intend to edit further) the following pages: [[ReferenceWML]], [[CharactersStorys]], [[Guide to UMC Content]], [[Glossary]], [[Maintenance tools]], and [[Available Music]].&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Glossary&amp;diff=73974</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Glossary&amp;diff=73974"/>
		<updated>2024-11-09T17:48:28Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Wesnothian Acronyms */ put back TTK, since there was no explanation for its removal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use the following list to demystify the various (mostly wesnoth specific) terms and acronyms you may run into.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NOTE TO EDITORS: Please try to keep an alphabetic order to simplify manual searching --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gaming Terms ==&lt;br /&gt;
&lt;br /&gt;
; ability : A special game rule or capability applied to all units of the given unit type - for example every Elvish Shaman has the ability &amp;quot;heal&amp;quot;.  (See [[AbilitiesWML]] for creating abilities.)&lt;br /&gt;
&lt;br /&gt;
; campaign: A sequence of scenarios with a connecting storyline. ([[MainlineCampaigns]], [[Guide_to_UMC_Content]], [[CampaignWML]])&lt;br /&gt;
&lt;br /&gt;
; creeping biggerism: the tendency for sprite artists to make new sprites bigger and more detailed than the existing ones, leading to issues of scale.&lt;br /&gt;
&lt;br /&gt;
; era: A set of factions available in multiplayer.  You can download additional eras from the [[Guide_to_UMC_Content|add-on server]]. ([[EraWML]])&lt;br /&gt;
&lt;br /&gt;
; faction: A set of units available to be plated as a side in multiplayer games. ([[EraWML|multiplayer_side WML tag]])&lt;br /&gt;
&lt;br /&gt;
; fog of war: A scenario option; enemy units are displayed only when close to player's units&lt;br /&gt;
&lt;br /&gt;
; mainline: A [[MainlineCampaigns|campaign]], multiplayer map, era, faction, image, or other resource that ships with the Wesnoth distribution.  The opposite of &amp;quot;[[#U|UMC]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; scenario: A sequence of turns played on one map. ([[ScenarioWML]])&lt;br /&gt;
&lt;br /&gt;
; shroud: A scenario option; the whole map is black at the beginning, only parts already &amp;quot;discovered&amp;quot; by the player are visible.&lt;br /&gt;
&lt;br /&gt;
; team color (TColor, TC): A unit graphic done so that color of some unit part (e.g. clothes) reflects the team where unit belongs ([[Team Color Shifting]])&lt;br /&gt;
&lt;br /&gt;
; trait: A random minor modification of a unit; it makes a unit different from other units of the same type. ([[UnitsWML|the trait tag]])&lt;br /&gt;
&lt;br /&gt;
; UMC: &amp;quot;User-Made content&amp;quot; or &amp;quot;User-Maintained Content&amp;quot;, campaigns and other material that does not ship with the game but is available for download from the [[Guide_to_UMC_Content|Wesnoth add-on server]].&lt;br /&gt;
&lt;br /&gt;
; [[WesCamp|Wescamp]]: The (former) project for translating unofficial user-made campaigns&lt;br /&gt;
&lt;br /&gt;
; zone of control (ZoC): game rule; when a unit moves to a hex adjacent to enemy unit, it usually cannot move further.&lt;br /&gt;
&lt;br /&gt;
; zone-locked: said of a unit that has entered an enemy ZoC and therefore cannot move further (often just &amp;quot;zoced&amp;quot; for short).&lt;br /&gt;
&lt;br /&gt;
== Wesnothian Acronyms ==&lt;br /&gt;
&lt;br /&gt;
*AI      - Artificial Intelligence (An 'AI side' is a side controlled by the computer)&lt;br /&gt;
*AMLA    - After Maximum Level Advancement&lt;br /&gt;
*AoH     - Age of Heroes&lt;br /&gt;
*BfM     - Battle for Meridia&lt;br /&gt;
*BfW     - Battle for Wesnoth (the name of the game)&lt;br /&gt;
*BWH     - '''B'''een suggested before.  '''W'''e think it's a good idea.  '''H'''ope to add it eventually.&lt;br /&gt;
*CABD    - Can Already Be Done, e.g., you can already create custom unit abilities via WML.&lt;br /&gt;
*CtH     - Chance to Hit (also C2H)&lt;br /&gt;
*CtBH    - Chance to Be Hit (also C2BH)&lt;br /&gt;
*CtK     - Chance to Kill (also C2K)&lt;br /&gt;
*CtBK    - Chance to Be Killed (also C2BK)&lt;br /&gt;
*FoW     - Fog of War (i.e. fog)&lt;br /&gt;
*FFA     - Free For All (playing a map with &amp;gt;2 players without teams)&lt;br /&gt;
*FPI     - Frequently Posted Idea (read the [http://www.wesnoth.org/forum/viewtopic.php?t=1158|FPI Post] from the Ideas Forum)&lt;br /&gt;
*HANE—EtH      - Hexes Are Not Evil - Embrace the Hex&lt;br /&gt;
*HAPMA   - Hexes Are Possibly Miles Across&lt;br /&gt;
*HP      - Hit points&lt;br /&gt;
*IIRWIIR - It Is Ready When It Is Ready&lt;br /&gt;
*IPF     - [[ImagePathFunctions|Image Path Function]]&lt;br /&gt;
*KISS    - Keep It Simple, Stupid: Applies to coding, not game rules (although indirectly it does): see [[WesnothPhilosophy]]&lt;br /&gt;
*MAI     - Micro AI: see: [[Micro_AIs]]&lt;br /&gt;
*MP      - Multiplayer or Movement Points&lt;br /&gt;
*MUB     - Massive Unit Blobs&lt;br /&gt;
*N3T     - No 3-Teams; A belief stating that contests between three equal and opposing forces are inherently unbalanced&lt;br /&gt;
*OAB     - Options Are Bad; In reference to gameplay, not user interface options.  Mostly used by Turin.&lt;br /&gt;
*OFWRA   - Old Flame War Revival Alert; In other words, we have discussed this before and have no interest in discussing it again, especially if it got ugly&lt;br /&gt;
*OOS     - Out Of Sync - an error generated by Wesnoth.  OOS errors occur when game data for one player is different/incompatible from the others&lt;br /&gt;
*PoD     - Paths of Daggers, the name of a 2v2 multiplayer map.&lt;br /&gt;
*RiPLIB  - Reduction in Power when Leveling Is Bad: means that when a unit upgrades, at least one of its options should be strictly superior to the original unit. [http://www.wesnoth.org/forum/viewtopic.php?t=1423 Reference 1] / [http://www.wesnoth.org/forum/viewtopic.php?t=7205 Reference 2]&lt;br /&gt;
*RNG     - Random Number Generator&lt;br /&gt;
*RPG     - Role Playing Game - [http://www.wesnoth.org/forum/viewtopic.php?t=4385 1)] Wesnoth's experience system. &amp;lt;nowiki&amp;gt;2)&amp;lt;/nowiki&amp;gt; An &amp;quot;RPG-style&amp;quot; game on the MP server means the primary focus will be walking your leader-units through a scripted storyline involving map exploration and lots of WML.&lt;br /&gt;
*RTS     - Real Time Strategy Game - as opposed to a turn-based game like Wesnoth&lt;br /&gt;
*SLF     - [[StandardLocationFilter]]&lt;br /&gt;
*SP      - Single Player (Campaigns)&lt;br /&gt;
*SSF     - [[StandardSideFilter]]&lt;br /&gt;
*SUF     - [[StandardUnitFilter]]&lt;br /&gt;
*TBS     - Turn Based Strategy Game, like Wesnoth&lt;br /&gt;
*ToD     - Time of Day&lt;br /&gt;
*TTK     - Time To Kill &lt;br /&gt;
*TWP     - The Wesnoth Philosophy: [[WesnothPhilosophy]]&lt;br /&gt;
*UAPEB   - Units Are Possibly Entire Battalions&lt;br /&gt;
*UMC     - User Made Campaign or User Made Content (any add-on not packaged with Wesnoth)&lt;br /&gt;
*WICOT   - WML is capable of this (the requested feature is already possible to script, so no need to hard-code it in C++)&lt;br /&gt;
*WINR    - Wesnoth Is Not Realistic&lt;br /&gt;
*WIN_    - Wesnoth Is Not... (Warcraft, Lord of the Rings, medieval Europe, an RPG, a wargame, a war simulation, Fire Emblem, etc.)&lt;br /&gt;
*WML     - Wesnoth Markup Language: [[ReferenceWML]]&lt;br /&gt;
*XP      - Experience&lt;br /&gt;
*ZoC     - Zone of Control&lt;br /&gt;
&lt;br /&gt;
== Names of Mainline Campaigns and Scenarios ==&lt;br /&gt;
&lt;br /&gt;
*AoI           - ''An Orcish Incursion''&lt;br /&gt;
*DiD           - ''Descent into Darkness''&lt;br /&gt;
*DM            - ''Delfador's Memoirs''&lt;br /&gt;
*DW            - ''Dead Water''&lt;br /&gt;
*EI            - ''The Eastern Invasion''&lt;br /&gt;
*HttT          - ''Heir to the Throne''&lt;br /&gt;
** BoP         - ''Bay of Pearls''&lt;br /&gt;
** DD          - ''Dwarven Doors''&lt;br /&gt;
** HotNE       - ''Home of the North Elves''&lt;br /&gt;
** IotD        - ''Isle of the Damned''&lt;br /&gt;
** RtW         - ''Return to Wesnoth''&lt;br /&gt;
** SoE         - ''Siege of Elensefar''&lt;br /&gt;
** SoF         - ''Sceptre of Fire''&lt;br /&gt;
** TotC        - ''Test of the Clans''&lt;br /&gt;
*IoM           - ''Isle of Mists'' (MP, mainlined in 1.15)&lt;br /&gt;
*LoW           - ''Legend of Wesmere''&lt;br /&gt;
*NR            - ''Northern Rebirth''&lt;br /&gt;
*SoF           - ''Sceptre of Fire''&lt;br /&gt;
*SotA          - ''Secrets of the Ancient''&lt;br /&gt;
*SotBE         - ''Son of the Black Eye''&lt;br /&gt;
*TB (or AToTB) - ''A Tale of Two Brothers''&lt;br /&gt;
*THoT          - ''The Hammer of Thursagan''&lt;br /&gt;
*TRoW          - ''The Rise of Wesnoth''&lt;br /&gt;
*TSG           - ''The South Guard''&lt;br /&gt;
*UtBS          - ''Under the Burning Suns''&lt;br /&gt;
*WC            - ''World Conquest'' (MP, mainlined in 1.15)&lt;br /&gt;
*WoF           - ''Winds of Fate'' (formerly WoV for ''Wings of Victory'' or ''Wings of Valor'')&lt;br /&gt;
&lt;br /&gt;
== Unofficial Campaigns ==&lt;br /&gt;
&lt;br /&gt;
*ANO      - ''A New Order''&lt;br /&gt;
*AotDS    - ''Aria of the Dragon Slayer''&lt;br /&gt;
*ARL      - ''A Rough Life''&lt;br /&gt;
*ASoF     - ''A Song of Fire''&lt;br /&gt;
*AtS      - ''After the Storm''&lt;br /&gt;
*BCoA     - ''Black Cross of Aleron''&lt;br /&gt;
*BMR      - ''Bad Moon Rising''&lt;br /&gt;
*BW       - ''Brave Wings''&lt;br /&gt;
*CCamp    - ''Custom Campaign''&lt;br /&gt;
*FoaP     - ''Fate of a Princess''&lt;br /&gt;
*FTC      - ''Forward They Cried''&lt;br /&gt;
*FtF      - ''Flight to Freedom''&lt;br /&gt;
*Gns      - ''Genesis''&lt;br /&gt;
*HoI1     - ''Hero of Irdya - Book I''&lt;br /&gt;
*IftU     - ''Invasion from the Unknown''&lt;br /&gt;
*IQ       - ''Inky's Quest''&lt;br /&gt;
*LotI     - ''Legend of the Invincibles''&lt;br /&gt;
*SE       - ''Saving Elensefar''&lt;br /&gt;
*SfF      - ''Struggle for Freedom''&lt;br /&gt;
*TBC      - ''The Beautiful Child''&lt;br /&gt;
*TDH      - ''The Dark Hordes''&lt;br /&gt;
*TEG      - ''The Earth's Gut''&lt;br /&gt;
*TFE      - ''The Final Exam''&lt;br /&gt;
*TLU      - ''To Lands Unknown''&lt;br /&gt;
*TSL      - ''The Silver Lands''&lt;br /&gt;
*TSoG     - ''The Sojournings of Grog''&lt;br /&gt;
*WotJ     - ''War of the Jewel'' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Unit_Names&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unofficial MP Eras ==&lt;br /&gt;
&lt;br /&gt;
*AE  - ''Ageless Era/Archaic Era''&lt;br /&gt;
*ANLE - ''A New Land Era''&lt;br /&gt;
*EEaW - ''17th Century Eastern Europe at War''&lt;br /&gt;
*EoM - ''Era of Myths''&lt;br /&gt;
*EoMa - ''Era of Magic''&lt;br /&gt;
*GSE - ''Great Steppe Era''&lt;br /&gt;
*IE - ''Imperial Era''&lt;br /&gt;
*RE - ''Rashy Era''&lt;br /&gt;
*RotL/Rotl - ''Reign of The Lords''&lt;br /&gt;
*WoL - ''War of Legends''&lt;br /&gt;
&lt;br /&gt;
== Unit Jargon ==&lt;br /&gt;
&lt;br /&gt;
*bird    - usually Gryphon Rider/Master (knalgans), or occasionally a Falcon or Eagle Rider from the [//units.wesnoth.org/1.14/Extended_Era/en_US/era_extended_37.0.0.0.html Extended Era] Aragwaith and Kalifa factions.&lt;br /&gt;
*DA      - Dark Adept (undead)&lt;br /&gt;
*DF      - Dunefolk&lt;br /&gt;
*fish    - Merman (loyalists or rebels) or Naga Fighter (northerners)&lt;br /&gt;
*frog    - a Saurian, especially &amp;quot;magic frog&amp;quot; for an Augur&lt;br /&gt;
*gobo    - An affectionate, if somewhat derogatory term for the Goblin Spearman&lt;br /&gt;
*gunner  - Dwarvish Thunderer/Thunderguard/Dragonguard (knalgans)&lt;br /&gt;
*HI      - Heavy Infantryman (loyalists)&lt;br /&gt;
*MoL     - Mage of Light (loyalists or rebels)&lt;br /&gt;
*pyro    - Unit in the Drake Burner line&lt;br /&gt;
*Ulf     - Dwarvish Ulfserker (knalgans)&lt;br /&gt;
*WC      - Walking Corpse (undead)&lt;br /&gt;
*zombie  - Walking Corpse&lt;br /&gt;
&lt;br /&gt;
== General Acronyms ==&lt;br /&gt;
&lt;br /&gt;
*AFaICT  - As Far as I Can Tell (A statement with a disclaimer on truthfulness)&lt;br /&gt;
*AFaIK   - As Far as I Know (A statement with a disclaimer on truthfulness)&lt;br /&gt;
*AFaIU   - As Far as I Understand (likewise)&lt;br /&gt;
*AfK     - Away from the Keyboard&lt;br /&gt;
*ASaP    - As Soon as Possible&lt;br /&gt;
*BRB     - Be Right Back&lt;br /&gt;
*BtW     - By the Way (A statement with a disclaimer on relevance)&lt;br /&gt;
*DTRT    - Do The Right Thing (expectation for how something should work)&lt;br /&gt;
*EV      - Expected Value&lt;br /&gt;
*FTR     - For The Record&lt;br /&gt;
*FUBAR   - F***ed up beyond all repair / reason&lt;br /&gt;
*FWIW    - For what it's worth&lt;br /&gt;
*FYI     - For Your Information&lt;br /&gt;
*GG      - Good Game (a common courtesy to say after a multiplayer game; alternatively &amp;quot;GGWP&amp;quot; for &amp;quot;Good Game, Well Played&amp;quot;)&lt;br /&gt;
*GtG     - Got to Go&lt;br /&gt;
*IANAL   - I Am Not A Lawyer (A disclaimer that a statement may not constitute legal advice.)&lt;br /&gt;
*IDK     - I Don't Know&lt;br /&gt;
*IIRC    - If I Recall/Remember Correctly (A statement with a disclaimer on truthfulness)&lt;br /&gt;
*IIUC    - If I Understand Correctly (Similar to IIRC, but not implying that the speaker once knew with certainty.)&lt;br /&gt;
*IMHO    - In My Humble Opinion (A statement with a disclaimer on objectiveness) (can also be read as &amp;quot;In My Honest Opinion&amp;quot;)&lt;br /&gt;
*IMO     - In My Opinion&lt;br /&gt;
*IYSWIM  - If You See What I Mean (A statement seeking agreement)&lt;br /&gt;
*LGTM    - Looks Good To Me (used by maintainers when approving Pull Requests on GitHub)&lt;br /&gt;
*LMAO    - Laughing My A** Off&lt;br /&gt;
*LTNS    - Long Time No See&lt;br /&gt;
*OMG     - oh my god(s)&lt;br /&gt;
*OP      - either &amp;quot;OverPowered&amp;quot;, &amp;quot;Original Post&amp;quot;, or &amp;quot;Original Poster&amp;quot;, depending on context. &lt;br /&gt;
*OT      - Off Topic: can refer either to the forum category ([http://www.wesnoth.org/forum/viewforum.php?f=11]) or to spam&lt;br /&gt;
*OtOH    - On the Other Hand (A contrast)&lt;br /&gt;
*PR      - Pull Request (in the context of contributing to a project like Wesnoth on GitHub; other projects that use other issue trackers use it to mean Problem Report instead)&lt;br /&gt;
*QFT     - Quote For Truth&lt;br /&gt;
*RotFL   - Rolling on the Floor Laughing; also RoFL&lt;br /&gt;
*RtFM    - Read the F***ing Manual&lt;br /&gt;
*TTYL    - Talk To You Later&lt;br /&gt;
*YMMV    - Your Mileage May Vary (a disclaimer allowing for subjectivity)&lt;br /&gt;
&lt;br /&gt;
[[Category:World of Wesnoth]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=73904</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=73904"/>
		<updated>2024-10-27T02:30:11Z</updated>

		<summary type="html">&lt;p&gt;Egallager: 1.18 is stable now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 3 stable releases (1.14, 1.16, and 1.18) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14, 1.16, or 1.18 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16 or 1.18).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16/1.18:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] (for BfW 1.18)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.7.0 1.7.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Glossary&amp;diff=73888</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Glossary&amp;diff=73888"/>
		<updated>2024-10-21T20:09:48Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Wesnothian Acronyms */ add TTK (still not sure what the &amp;quot;gc&amp;quot; is for in &amp;quot;gcTTK&amp;quot;, though...)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use the following list to demystify the various (mostly wesnoth specific) terms and acronyms you may run into.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NOTE TO EDITORS: Please try to keep an alphabetic order to simplify manual searching --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gaming Terms ==&lt;br /&gt;
&lt;br /&gt;
; ability : A special game rule or capability applied to all units of the given unit type - for example every Elvish Shaman has the ability &amp;quot;heal&amp;quot;.  (See [[AbilitiesWML]] for creating abilities.)&lt;br /&gt;
&lt;br /&gt;
; campaign: A sequence of scenarios with a connecting storyline. ([[MainlineCampaigns]], [[Guide_to_UMC_Content]], [[CampaignWML]])&lt;br /&gt;
&lt;br /&gt;
; creeping biggerism: the tendency for sprite artists to make new sprites bigger and more detailed than the existing ones, leading to issues of scale.&lt;br /&gt;
&lt;br /&gt;
; era: A set of factions available in multiplayer.  You can download additional eras from the [[Guide_to_UMC_Content|add-on server]]. ([[EraWML]])&lt;br /&gt;
&lt;br /&gt;
; faction: A set of units available to be plated as a side in multiplayer games. ([[EraWML|multiplayer_side WML tag]])&lt;br /&gt;
&lt;br /&gt;
; fog of war: A scenario option; enemy units are displayed only when close to player's units&lt;br /&gt;
&lt;br /&gt;
; mainline: A [[MainlineCampaigns|campaign]], multiplayer map, era, faction, image, or other resource that ships with the Wesnoth distribution.  The opposite of &amp;quot;[[#U|UMC]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; scenario: A sequence of turns played on one map. ([[ScenarioWML]])&lt;br /&gt;
&lt;br /&gt;
; shroud: A scenario option; the whole map is black at the beginning, only parts already &amp;quot;discovered&amp;quot; by the player are visible.&lt;br /&gt;
&lt;br /&gt;
; team color (TColor, TC): A unit graphic done so that color of some unit part (e.g. clothes) reflects the team where unit belongs ([[Team Color Shifting]])&lt;br /&gt;
&lt;br /&gt;
; trait: A random minor modification of a unit; it makes a unit different from other units of the same type. ([[UnitsWML|the trait tag]])&lt;br /&gt;
&lt;br /&gt;
; UMC: &amp;quot;User-Made content&amp;quot; or &amp;quot;User-Maintained Content&amp;quot;, campaigns and other material that does not ship with the game but is available for download from the [[Guide_to_UMC_Content|Wesnoth add-on server]].&lt;br /&gt;
&lt;br /&gt;
; [[WesCamp|Wescamp]]: The (former) project for translating unofficial user-made campaigns&lt;br /&gt;
&lt;br /&gt;
; zone of control (ZoC): game rule; when a unit moves to a hex adjacent to enemy unit, it usually cannot move further.&lt;br /&gt;
&lt;br /&gt;
; zone-locked: said of a unit that has entered an enemy ZoC and therefore cannot move further (often just &amp;quot;zoced&amp;quot; for short).&lt;br /&gt;
&lt;br /&gt;
== Wesnothian Acronyms ==&lt;br /&gt;
&lt;br /&gt;
*AI      - Artificial Intelligence (An 'AI side' is a side controlled by the computer)&lt;br /&gt;
*AMLA    - After Maximum Level Advancement&lt;br /&gt;
*AoH     - Age of Heroes&lt;br /&gt;
*BfM     - Battle for Meridia&lt;br /&gt;
*BfW     - Battle for Wesnoth (the name of the game)&lt;br /&gt;
*BWH     - '''B'''een suggested before.  '''W'''e think it's a good idea.  '''H'''ope to add it eventually.&lt;br /&gt;
*CABD    - Can Already Be Done, e.g., you can already create custom unit abilities via WML.&lt;br /&gt;
*CtH     - Chance to Hit (also C2H)&lt;br /&gt;
*CtBH    - Chance to Be Hit (also C2BH)&lt;br /&gt;
*CtK     - Chance to Kill (also C2K)&lt;br /&gt;
*CtBK    - Chance to Be Killed (also C2BK)&lt;br /&gt;
*FoW     - Fog of War (i.e. fog)&lt;br /&gt;
*FFA     - Free For All (playing a map with &amp;gt;2 players without teams)&lt;br /&gt;
*FPI     - Frequently Posted Idea (read the [http://www.wesnoth.org/forum/viewtopic.php?t=1158|FPI Post] from the Ideas Forum)&lt;br /&gt;
*HANE—EtH      - Hexes Are Not Evil - Embrace the Hex&lt;br /&gt;
*HAPMA   - Hexes Are Possibly Miles Across&lt;br /&gt;
*HP      - Hit points&lt;br /&gt;
*IIRWIIR - It Is Ready When It Is Ready&lt;br /&gt;
*IPF     - [[ImagePathFunctions|Image Path Function]]&lt;br /&gt;
*KISS    - Keep It Simple, Stupid: Applies to coding, not game rules (although indirectly it does): see [[WesnothPhilosophy]]&lt;br /&gt;
*MAI     - Micro AI: see: [[Micro_AIs]]&lt;br /&gt;
*MP      - Multiplayer or Movement Points&lt;br /&gt;
*MUB     - Massive Unit Blobs&lt;br /&gt;
*N3T     - No 3-Teams; A belief stating that contests between three equal and opposing forces are inherently unbalanced&lt;br /&gt;
*OAB     - Options Are Bad; In reference to gameplay, not user interface options.  Mostly used by Turin.&lt;br /&gt;
*OFWRA   - Old Flame War Revival Alert; In other words, we have discussed this before and have no interest in discussing it again, especially if it got ugly&lt;br /&gt;
*OOS     - Out Of Sync - an error generated by Wesnoth.  OOS errors occur when game data for one player is different/incompatible from the others&lt;br /&gt;
*PoD     - Paths of Daggers, the name of a 2v2 multiplayer map.&lt;br /&gt;
*RiPLIB  - Reduction in Power when Leveling Is Bad: means that when a unit upgrades, at least one of its options should be strictly superior to the original unit. [http://www.wesnoth.org/forum/viewtopic.php?t=1423 Reference 1] / [http://www.wesnoth.org/forum/viewtopic.php?t=7205 Reference 2]&lt;br /&gt;
*RNG     - Random Number Generator&lt;br /&gt;
*RPG     - Role Playing Game - [http://www.wesnoth.org/forum/viewtopic.php?t=4385 1)] Wesnoth's experience system. &amp;lt;nowiki&amp;gt;2)&amp;lt;/nowiki&amp;gt; An &amp;quot;RPG-style&amp;quot; game on the MP server means the primary focus will be walking your leader-units through a scripted storyline involving map exploration and lots of WML.&lt;br /&gt;
*RTS     - Real Time Strategy Game - as opposed to a turn-based game like Wesnoth&lt;br /&gt;
*SLF     - [[StandardLocationFilter]]&lt;br /&gt;
*SP      - Single Player (Campaigns)&lt;br /&gt;
*SSF     - [[StandardSideFilter]]&lt;br /&gt;
*SUF     - [[StandardUnitFilter]]&lt;br /&gt;
*TBS     - Turn Based Strategy Game, like Wesnoth&lt;br /&gt;
*ToD     - Time of Day&lt;br /&gt;
*TTK     - Time To Kill&lt;br /&gt;
*TWP     - The Wesnoth Philosophy: [[WesnothPhilosophy]]&lt;br /&gt;
*UAPEB   - Units Are Possibly Entire Battalions&lt;br /&gt;
*UMC     - User Made Campaign or User Made Content (any add-on not packaged with Wesnoth)&lt;br /&gt;
*WICOT   - WML is capable of this (the requested feature is already possible to script, so no need to hard-code it in C++)&lt;br /&gt;
*WINR    - Wesnoth Is Not Realistic&lt;br /&gt;
*WIN_    - Wesnoth Is Not... (Warcraft, Lord of the Rings, medieval Europe, an RPG, a wargame, a war simulation, Fire Emblem, etc.)&lt;br /&gt;
*WML     - Wesnoth Markup Language: [[ReferenceWML]]&lt;br /&gt;
*XP      - Experience&lt;br /&gt;
*ZoC     - Zone of Control&lt;br /&gt;
&lt;br /&gt;
== Names of Mainline Campaigns and Scenarios ==&lt;br /&gt;
&lt;br /&gt;
*AoI           - ''An Orcish Incursion''&lt;br /&gt;
*DiD           - ''Descent into Darkness''&lt;br /&gt;
*DM            - ''Delfador's Memoirs''&lt;br /&gt;
*DW            - ''Dead Water''&lt;br /&gt;
*EI            - ''The Eastern Invasion''&lt;br /&gt;
*HttT          - ''Heir to the Throne''&lt;br /&gt;
** BoP         - ''Bay of Pearls''&lt;br /&gt;
** DD          - ''Dwarven Doors''&lt;br /&gt;
** HotNE       - ''Home of the North Elves''&lt;br /&gt;
** IotD        - ''Isle of the Damned''&lt;br /&gt;
** RtW         - ''Return to Wesnoth''&lt;br /&gt;
** SoE         - ''Siege of Elensefar''&lt;br /&gt;
** SoF         - ''Sceptre of Fire''&lt;br /&gt;
** TotC        - ''Test of the Clans''&lt;br /&gt;
*IoM           - ''Isle of Mists'' (MP, mainlined in 1.15)&lt;br /&gt;
*LoW           - ''Legend of Wesmere''&lt;br /&gt;
*NR            - ''Northern Rebirth''&lt;br /&gt;
*SoF           - ''Sceptre of Fire''&lt;br /&gt;
*SotA          - ''Secrets of the Ancient''&lt;br /&gt;
*SotBE         - ''Son of the Black Eye''&lt;br /&gt;
*TB (or AToTB) - ''A Tale of Two Brothers''&lt;br /&gt;
*THoT          - ''The Hammer of Thursagan''&lt;br /&gt;
*TRoW          - ''The Rise of Wesnoth''&lt;br /&gt;
*TSG           - ''The South Guard''&lt;br /&gt;
*UtBS          - ''Under the Burning Suns''&lt;br /&gt;
*WC            - ''World Conquest'' (MP, mainlined in 1.15)&lt;br /&gt;
*WoF           - ''Winds of Fate'' (formerly WoV for ''Wings of Victory'' or ''Wings of Valor'')&lt;br /&gt;
&lt;br /&gt;
== Unofficial Campaigns ==&lt;br /&gt;
&lt;br /&gt;
*ANO      - ''A New Order''&lt;br /&gt;
*AotDS    - ''Aria of the Dragon Slayer''&lt;br /&gt;
*ARL      - ''A Rough Life''&lt;br /&gt;
*ASoF     - ''A Song of Fire''&lt;br /&gt;
*AtS      - ''After the Storm''&lt;br /&gt;
*BCoA     - ''Black Cross of Aleron''&lt;br /&gt;
*BMR      - ''Bad Moon Rising''&lt;br /&gt;
*BW       - ''Brave Wings''&lt;br /&gt;
*CCamp    - ''Custom Campaign''&lt;br /&gt;
*FoaP     - ''Fate of a Princess''&lt;br /&gt;
*FTC      - ''Forward They Cried''&lt;br /&gt;
*FtF      - ''Flight to Freedom''&lt;br /&gt;
*Gns      - ''Genesis''&lt;br /&gt;
*HoI1     - ''Hero of Irdya - Book I''&lt;br /&gt;
*IftU     - ''Invasion from the Unknown''&lt;br /&gt;
*IQ       - ''Inky's Quest''&lt;br /&gt;
*LotI     - ''Legend of the Invincibles''&lt;br /&gt;
*SE       - ''Saving Elensefar''&lt;br /&gt;
*SfF      - ''Struggle for Freedom''&lt;br /&gt;
*TBC      - ''The Beautiful Child''&lt;br /&gt;
*TDH      - ''The Dark Hordes''&lt;br /&gt;
*TEG      - ''The Earth's Gut''&lt;br /&gt;
*TFE      - ''The Final Exam''&lt;br /&gt;
*TLU      - ''To Lands Unknown''&lt;br /&gt;
*TSL      - ''The Silver Lands''&lt;br /&gt;
*TSoG     - ''The Sojournings of Grog''&lt;br /&gt;
*WotJ     - ''War of the Jewel'' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Unit_Names&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unofficial MP Eras ==&lt;br /&gt;
&lt;br /&gt;
*AE  - ''Ageless Era/Archaic Era''&lt;br /&gt;
*ANLE - ''A New Land Era''&lt;br /&gt;
*EEaW - ''17th Century Eastern Europe at War''&lt;br /&gt;
*EoM - ''Era of Myths''&lt;br /&gt;
*EoMa - ''Era of Magic''&lt;br /&gt;
*GSE - ''Great Steppe Era''&lt;br /&gt;
*IE - ''Imperial Era''&lt;br /&gt;
*RE - ''Rashy Era''&lt;br /&gt;
*RotL/Rotl - ''Reign of The Lords''&lt;br /&gt;
*WoL - ''War of Legends''&lt;br /&gt;
&lt;br /&gt;
== Unit Jargon ==&lt;br /&gt;
&lt;br /&gt;
*bird    - usually Gryphon Rider/Master (knalgans), or occasionally a Falcon or Eagle Rider from the [//units.wesnoth.org/1.14/Extended_Era/en_US/era_extended_37.0.0.0.html Extended Era] Aragwaith and Kalifa factions.&lt;br /&gt;
*DA      - Dark Adept (undead)&lt;br /&gt;
*fish    - Merman (loyalists or rebels) or Naga Fighter (northerners)&lt;br /&gt;
*frog    - a Saurian, especially &amp;quot;magic frog&amp;quot; for an Augur&lt;br /&gt;
*gobo    - An affectionate, if somewhat derogatory term for the Goblin Spearman&lt;br /&gt;
*gunner  - Dwarvish Thunderer/Thunderguard/Dragonguard (knalgans)&lt;br /&gt;
*HI      - Heavy Infantryman (loyalists)&lt;br /&gt;
*MoL     - Mage of Light (loyalists or rebels)&lt;br /&gt;
*pyro    - Unit in the Drake Burner line&lt;br /&gt;
*Ulf     - Dwarvish Ulfserker (knalgans)&lt;br /&gt;
*WC      - Walking Corpse (undead)&lt;br /&gt;
*zombie  - Walking Corpse&lt;br /&gt;
&lt;br /&gt;
== General Acronyms ==&lt;br /&gt;
&lt;br /&gt;
*AFaICT  - As Far as I Can Tell (A statement with a disclaimer on truthfulness)&lt;br /&gt;
*AFaIK   - As Far as I Know (A statement with a disclaimer on truthfulness)&lt;br /&gt;
*AFaIU   - As Far as I Understand (likewise)&lt;br /&gt;
*AfK     - Away from the Keyboard&lt;br /&gt;
*ASaP    - As Soon as Possible&lt;br /&gt;
*BRB     - Be Right Back&lt;br /&gt;
*BtW     - By the Way (A statement with a disclaimer on relevance)&lt;br /&gt;
*DTRT    - Do The Right Thing (expectation for how something should work)&lt;br /&gt;
*EV      - Expected Value&lt;br /&gt;
*FTR     - For The Record&lt;br /&gt;
*FUBAR   - F***ed up beyond all repair / reason&lt;br /&gt;
*FWIW    - For what it's worth&lt;br /&gt;
*FYI     - For Your Information&lt;br /&gt;
*GG      - Good Game (a common courtesy to say after a multiplayer game; alternatively &amp;quot;GGWP&amp;quot; for &amp;quot;Good Game, Well Played&amp;quot;)&lt;br /&gt;
*GtG     - Got to Go&lt;br /&gt;
*IANAL   - I Am Not A Lawyer (A disclaimer that a statement may not constitute legal advice.)&lt;br /&gt;
*IDK     - I Don't Know&lt;br /&gt;
*IIRC    - If I Recall/Remember Correctly (A statement with a disclaimer on truthfulness)&lt;br /&gt;
*IIUC    - If I Understand Correctly (Similar to IIRC, but not implying that the speaker once knew with certainty.)&lt;br /&gt;
*IMHO    - In My Humble Opinion (A statement with a disclaimer on objectiveness) (can also be read as &amp;quot;In My Honest Opinion&amp;quot;)&lt;br /&gt;
*IMO     - In My Opinion&lt;br /&gt;
*IYSWIM  - If You See What I Mean (A statement seeking agreement)&lt;br /&gt;
*LGTM    - Looks Good To Me (used by maintainers when approving Pull Requests on GitHub)&lt;br /&gt;
*LMAO    - Laughing My A** Off&lt;br /&gt;
*LTNS    - Long Time No See&lt;br /&gt;
*OMG     - oh my god(s)&lt;br /&gt;
*OP      - either &amp;quot;OverPowered&amp;quot;, &amp;quot;Original Post&amp;quot;, or &amp;quot;Original Poster&amp;quot;, depending on context. &lt;br /&gt;
*OT      - Off Topic: can refer either to the forum category ([http://www.wesnoth.org/forum/viewforum.php?f=11]) or to spam&lt;br /&gt;
*OtOH    - On the Other Hand (A contrast)&lt;br /&gt;
*PR      - Pull Request (in the context of contributing to a project like Wesnoth on GitHub; other projects that use other issue trackers use it to mean Problem Report instead)&lt;br /&gt;
*QFT     - Quote For Truth&lt;br /&gt;
*RotFL   - Rolling on the Floor Laughing; also RoFL&lt;br /&gt;
*RtFM    - Read the F***ing Manual&lt;br /&gt;
*TTYL    - Talk To You Later&lt;br /&gt;
*YMMV    - Your Mileage May Vary (a disclaimer allowing for subjectivity)&lt;br /&gt;
&lt;br /&gt;
[[Category:World of Wesnoth]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=AiWML&amp;diff=73862</id>
		<title>AiWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=AiWML&amp;diff=73862"/>
		<updated>2024-10-21T06:38:03Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Filtering Combat with the attacks Aspect */ make &amp;quot;See Also&amp;quot; its own section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
&lt;br /&gt;
== Customizing the Default AI Using WML ==&lt;br /&gt;
&lt;br /&gt;
This page describes how the behavior of the default (RCA) AI can be customized using simple WML commands.  The descriptions below assume a basic understanding of how the RCA AI evaluates moves, what '''candidate actions''', '''aspects''' and '''goals''' are, and how they interact.  If you do not know these things yet, check out the [[RCA AI]] page.&lt;br /&gt;
&lt;br /&gt;
This page contains:&lt;br /&gt;
* Descriptions of the aspects and goals of the default AI&lt;br /&gt;
* Instructions for setting them up at the beginning of the scenario in a [side] tag&lt;br /&gt;
&lt;br /&gt;
This page does '''not''' contain:&lt;br /&gt;
* Instructions for [[LuaAI#Dynamic_Lua_Aspects|setting up aspects dynamically using Lua]].&lt;br /&gt;
* Instructions for [[Modifying_AI_Components#Modifying_Standard_Aspects|changing aspects and goals mid scenario]], although for many of them (for example, for all [[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|standard aspects]]) the methods are almost identical&lt;br /&gt;
* Instructions for some of the [[Modifying_AI_Components|more complex AI customization tasks]].&lt;br /&gt;
* Anything about [[Micro_AIs|MicroAIs]]&lt;br /&gt;
* [[AI_Recruitment|Advanced recruitment details]]&lt;br /&gt;
&lt;br /&gt;
== Defining Aspects and Goals of the RCA AI ==&lt;br /&gt;
&lt;br /&gt;
[[RCA_AI#Use_of_Aspects_in_the_RCA_AI|Aspects]] and [[RCA_AI#Use_of_Goals_and_Targets_in_the_RCA_AI|goals]] of the [[RCA_AI|default (RCA) AI]] can be defined at the beginning of a scenario with [ai] tags inside the [side] tags.  They are used to customize certain aspects of the AI.  The [ai] tag, when used for this purpose, takes the [[#List_of_AI_Aspects|aspects themselves]] as arguments, as well as the following general keys:&lt;br /&gt;
* '''time_of_day''': (string) The time(s) of day when the AI should use the parameters given in this [ai] tag. Possible values are listed in [https://github.com/wesnoth/wesnoth/blob/master/data/core/macros/schedules.cfg data/core/macros/schedules.cfg] (see also [[TimeWML]]).  Note that it is the ''id'' (not the ''name'') of the time of day that needs to be used here.  Also note that this aspect did not work for a long time due to a bug (versions 1.7.4 - 1.11.6).  It has been fixed for BfW 1.11.7.&lt;br /&gt;
&lt;br /&gt;
* '''turns''': (string) During which turns the AI should use the parameters given in this [ai] tag. This takes the same syntax of dashes (-) and commas (,) as is described under Filtering Locations in [[FilterWML]], except of course they apply to turns not locations.&lt;br /&gt;
&lt;br /&gt;
* '''ai_algorithm''': (string) Allows an alternate AI algorithm (cannot be created with WML) to be used. Besides the default, the game only comes with ''idle_ai'', which makes the AI do nothing and can be used to create a passive, unmoving side. Cannot be applied only to a set of turns or a given time of day using the keys ''turns'' and ''time_of_day'', but must be given either in an [ai] tag without the aforementioned keys or in the [side] tag outside all [ai] tags. {{DevFeature1.13|5}} In 1.13, the meaning of '''ai_algorithm''' has changed and no longer selects a native AI that's built into the engine, as the RCA AI has now become the core system and no alternatives exist anymore. Instead, it selects a predefined ''[ai]'' definition, such as those defined in ''data/ai/ais''. Since these are defined in WML, you can easily build your own.&lt;br /&gt;
&lt;br /&gt;
An example of a simple use of the [ai] tag to set AI parameters (aspects) is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wml&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    time_of_day=dusk&lt;br /&gt;
    aggression=0.99&lt;br /&gt;
    caution=0.01&lt;br /&gt;
    [avoid]&lt;br /&gt;
        [filter]&lt;br /&gt;
            side=2,3&lt;br /&gt;
        [/filter]&lt;br /&gt;
        radius=2&lt;br /&gt;
    [/avoid]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you use a different AI engine ([[FormulaAI]] or [[LuaAI]]) for a side, setting aspects in the [side] tag might not work due to a bug in the AI setup mechanism (or it might; there's no general rule that catches all cases).  In that case, you might have to use [modify_side][ai] in a ''prestart'' or ''start'' event instead.  If unsure, you can use &amp;lt;code&amp;gt;:inspect&amp;lt;/code&amp;gt; in debug mode to verify whether an aspect was changed successfully.&lt;br /&gt;
&lt;br /&gt;
==List of AI Aspects==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Only one instance of each aspect will be active for a side at any time. Where multiple instances of the same aspect are included in an [ai] tag, the last whose conditions (time of day, turns, etc.) match will be the only one that applies.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|advancements|'''advancements'''}}: (string) Defines a list of unit types to which AI units can advance. If a unit type is listed here, units that can advance to this type will &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; advance to this type, even if they have, in principle, several advancement options.  As an example, if this aspect is set to 'Javelineer,Elvish Hero', then all Spearmen advance to Javelineers, and all Elvish Fighters advance to Elvish Heroes.  All other units follow their usual advancement choices as determined by the AI.  '''Important notes:'''&lt;br /&gt;
** This is a simplified version of the more complex (and arguably more useful) application of a dynamic Lua ''advancements'' aspect, as described [[LuaAI#The_advancements_Aspect|here]].&lt;br /&gt;
** The ''advancements'' aspect only takes effect during the AI turn, that is, on offense only, not on defense.&lt;br /&gt;
** Listing more than one advancement unit type for a given unit still results in only one of the types being used (generally the one listed last).&lt;br /&gt;
&lt;br /&gt;
* {{anchor|aggression|'''aggression'''}}=0.4: (double: ranging from -infinity to 1.0)  This key affects how the AI selects its attack targets.  The higher the value, the more likely the AI is to attack even if odds are not in its favor.  The description below applies as written to the ''combat'' CA only, but aggression is taken into account by the ''high_xp_attack'' and ''spread_poison'' CAs as well (as of '''Wesnoth 1.13.5''' and '''1.15.3''' respectively).&lt;br /&gt;
** '''Important: do not set aggression to values greater than 1''' as this makes the AI ''prefer'' attacks in which it receives more damage (see below) unless that is specifically the effect you want to achieve.&lt;br /&gt;
** In the attack evaluation, each attack (this includes attack combinations of several AI units against the same enemy unit) is assigned a score.  The attack with the highest score is done first.  Then the next attack is evaluated, until no attack with a score greater than 0 is found any more.  (Note that this ''attack score'' is different from the ''combat CA score'', which is always 100,000 as long as an individual attack score &amp;gt;0 is found.  The combat CA score is zero if the highest attack score is &amp;lt;=0).&lt;br /&gt;
** The attack score is a complex combination of many different aspects of the attacks.  Positive (additive) contributions to the score are things like the value (cost and XP) of the target, the chance to kill the target, whether it is already wounded, how much damage the attack is likely to inflict, etc.  Negative (additive) factors include how much damage the AI's units are likely to take, how valuable they are, how exposed they will be after the attack, etc.  There are also multiplicative factors that are used if the attack target is a threat to the AI's leader etc.&lt;br /&gt;
** All the negative contributions to the score are multiplied by '(1-aggression)'.  This means that:&lt;br /&gt;
*** If 'aggression=1', no negative contributions are added to the score.  Thus, the AI disregards damage done to its own units and selects attacks based solely on the damage it can do to enemy units.  If the AI can inflict 1 damage and take 0, or inflict 2 damage and take 20, it will take the latter option.&lt;br /&gt;
*** The smaller the value of ''aggression'', the more weight is put on value of and potential damage to the AI's units as compared to the attack target.&lt;br /&gt;
*** Roughly speaking, 'aggression=0' results in the AI valuing its units approximately as much as the enemy units.  This is not a one-to-one relation, but can be used as an approximate guideline.&lt;br /&gt;
*** Very large negative values of ''aggression'' mean that the value of the AI's units is much more important than that of the enemy units.  As a result, the AI never attacks unless it will receive no damage in exchange.&lt;br /&gt;
*** The rating for damage received in an attack actually becomes a positive contribution to the score for values of aggression larger than 1.  This usually does not result in sensible behavior and values greater than 1 should therefore not be used.&lt;br /&gt;
** Note: ''aggression'' is always set to 1.0 for attacks on units that pose a direct threat to the AI's leader.  Currently this only means units adjacent to the leader.&lt;br /&gt;
&lt;br /&gt;
*{{anchor|allow_ally_villages|'''allow_ally_villages'''}}=no (bool) {{DevFeature1.17|6}} Affects ''retreat-injured'' CA only. Normally, the AI is not allowed to take villages from an ally. If this is set to 'yes', the AI may retreat injured units to allied villages (and thereby capture them).&lt;br /&gt;
&lt;br /&gt;
*{{anchor|attacks|'''[attacks]'''}}: Filters the units considered for combat, both on the AI and the enemy sides.  Applies to the ''combat'', ''high_xp_attacks'' and ''spread_poison'' CAs only.  It cannot be set in the same way as the other aspects and is therefore described in a [[#Filtering_Combat_with_the_attacks_Aspect|separate section]] below.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|avoid|'''[avoid]'''}}: Makes the AI avoid specific locations.  The AI never moves a unit to these locations except for trying to move its leader to a keep or toward [leader_goal]s, and thus applies to all CAs except ''move-leader-to-goals'' and ''move-leader-to-keep''.&lt;br /&gt;
** '''[[StandardLocationFilter]]''': The locations for the AI to avoid.  Do not use a [filter_location] tag.&lt;br /&gt;
**'''Note:''' Only one instance of an [avoid] aspect will be active for a side at any time. Where multiple instances are included in an [ai] tag, the last whose conditions (time of day, turns, etc.) match will be the only one that applies.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|caution|'''caution'''}}=0.25: (double) Defines how cautious the AI is in several ways.  It determines whether the leader should move toward [leader_goal], if attacks are worth moving onto less favorable terrain, whether units should retreat, and whether the AI should move units toward targets individually, as groups or not at all.  Affects several CAs (listed in the order of their [[RCA_AI#The_Candidate_Actions_.28CAs.29_of_the_main_loop_Stage_in_the_RCA_AI|evaluation scores]]):&lt;br /&gt;
** ''Move-leader-to-goals CA'': If ''max_risk'' is not set in [leader_goal], its default value is '1-caution'.  This determines whether the leader takes the next step toward his goal.  See description of [leader_goal].&lt;br /&gt;
** ''Combat'' CA: &lt;br /&gt;
*** During the evaluation of attacks, the AI considers whether the attacking units could get onto more favorable terrain if they didn't attack but moved somewhere else instead.  The difference between the two terrain ratings, together with a number of other factors, determines the &amp;quot;exposure&amp;quot; rating of the units.  This exposure is then subtracted from the 'attack score' as described for ''aggression'' above.&lt;br /&gt;
*** The exposure rating also contains a multiplication by ''caution'', meaning that 'caution=0' results in exposure not being taken into account, and that it becomes more and more important for larger values.  In other words, the higher the values of ''caution'', the more reluctant is the AI to attack from unfavorable terrain.  (Note that exposure is one of the negative contributions to the attack score as described for ''aggression'', and therefore is also ignored if 'aggression=1' is set.)&lt;br /&gt;
*** If the AI leader is used in an attack, the AI ''always'' uses 'caution=2' for the evaluation of that attack.&lt;br /&gt;
** ''Retreat'' CA: {{DevFeature1.15|3}} This CA has been removed.&lt;br /&gt;
*** If caution is greater than 0, there is an evaluation of forces for the map location a unit stands on. This is basically the sum of damage that can be done to that location by either side, reduced by terrain defense and relative hitpoints if attackers don't have full health. A retreat takes place, if &amp;lt;tt&amp;gt;caution &amp;amp;times; their_power &amp;gt; our_power&amp;lt;/tt&amp;gt;. There is also a terrain factor involved if the attacker is not on optimal terrain, similar to the exposure described above for the combat CA.&lt;br /&gt;
*** So let's say the AI has its default caution of 0.25. Then the enemy forces have to be at least 4 times as strong before the unit retreats. For a caution of 1, as soon as the enemy is stronger, the unit retreats. &lt;br /&gt;
*** The AI never retreats if caution is set to 0 or lower.&lt;br /&gt;
** ''Move-to-targets'' CA:&lt;br /&gt;
*** If grouping for the AI is enabled and the path along which to move toward a target is considered to be dangerous, caution has an influence, too. &amp;quot;Dangerous&amp;quot; mainly means that there is a good chance for a unit to be killed if it's by itself.  In that case, the AI compares its units to the enemy units and based on the result moves forward or not. All units that can reach the next location of the move are considered.  The formula for deciding whether to move toward the target as a group is &amp;lt;tt&amp;gt;our_strength / their_strength &amp;gt; 0.5 + caution&amp;lt;/tt&amp;gt;. If this condition holds true, units are moved toward the goal as a group, otherwise they try to group together in a location favorable for a attack on the enemy during the next turn.&lt;br /&gt;
***So if caution is 0.5, the AI side needs to be at least as strong as the enemy. If it is 0, the AI moves toward the target, even if the enemy is up to twice as strong as the AI. Setting caution to 1.5 means the AI needs to be at least twice as strong as the enemy.&lt;br /&gt;
*** The AI also considers retreating units during the move-to-target phase based on criteria similar to those for the retreat CA.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|grouping|'''grouping'''}}=&amp;quot;offensive&amp;quot;: (string) How the AI should try to group units.  Applies to ''move-to-targets'' CA only.  Possible values:&lt;br /&gt;
** ''offensive'': Makes the AI try to group units together before attacking.&lt;br /&gt;
** ''defensive'': Makes the AI group units together very conservatively, only advancing them much beyond its castle if it has overwhelming force.&lt;br /&gt;
** ''no'': Makes the AI use no grouping behavior.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|leader_aggression|'''leader_aggression'''}}=&amp;quot;-4.0&amp;quot;: Exactly as aggression, but for units which can recruit.  Applies to ''combat'' CA only.  Note that the move-leader-to-keep CA has a higher score than the combat CA.  A leader therefore usually only attacks if he is on his keep at the beginning of the turn, otherwise he moves toward the closest keep instead, even with ''leader_aggression=1''.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|leader_goal|'''[leader_goal]'''}}=&amp;quot;&amp;quot;: Makes the AI try to move its leader to a specific location.  Applies to ''move-leader-to-goals'' CA only.&lt;br /&gt;
** '''x''', '''y''': The location toward which the AI should move its leader.&lt;br /&gt;
** '''auto_remove'''=no: (bool)  If 'no' (default), the AI moves the leader to the goal, after which he stays there until [leader_goal] is [[Modifying_AI_Components#Modifying_Standard_Aspects|removed manually]].  If 'yes', the leader_goal is removed upon the leader getting there.  Important: this ''only'' works if ''id'' is set correctly (see the next bullet).&lt;br /&gt;
** '''id'''=&amp;quot;&amp;quot;: (string)  An internal id key of the [leader_goal] tag.  An id is required for ''auto_remove'' to work.  However, setting this id does not automatically set the id of the [leader_goal] [[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|facet]].  Thus, in principle for this to work, you need to set the id of the facet as described [[Modifying_AI_Components#Modifying_Standard_Aspects|here]] ''and'' set the ''id'' key in [leader_value] to the same value.  Since you are probably only going to use one [leader_goal] tag at a time, there is a much simpler way: setting 'id=0' (which refers to the first facet) or 'id=*' (which means all facets) in [leader_goal] allows ''auto_remove'' to work without the extra step of setting the facet id. {{DevFeature1.13|5}} Setting this now also sets the id of the [leader_goal] facet, allowing auto_remove to work with multiple leader goals without using the fully-expanded aspect syntax.&lt;br /&gt;
**'''max_risk'''=1-caution: (double: meaningful values are &amp;gt;=0)  How much risk the leader may be exposed to by moving toward the goal.  For evaluating this risk, the AI multiplies the leader's hitpoints by this number.  The leader is only moved toward the goal if the resulting value is larger than the expected damage the leader is going to take during the next enemy turn.  Thus, 'max_risk=0' means he will only move if no attack on him is possible at the target hex of the move.  'max_risk=1' (or larger) results in him moving even if he's almost certainly going to die.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|leader_ignores_keep|'''leader_ignores_keep'''}}=no: (bool) Set to 'yes' for this aspect to apply to all leaders of a side. {{DevFeature1.15|3}} In addition to 'yes/no', the aspect can now also be set to a comma-separated list of unit ids. The aspect then only applies to leaders with ids matching an id on that list. Setting leader_ignores_keep for some or all leaders means that:&lt;br /&gt;
** The affected AI leaders do not move to the closest keep at the beginning of the turn.  Instead, they participate in the ''move_to_targets'' candidate action (and all other CAs in which they already participated anyway, of course). Thus, these leaders behave in the same way as any other unit of the AI side.&lt;br /&gt;
** This also means that these AI leaders do not recruit except on the first turn if they start on a keep, or if they accidentally end up on a keep.  Thus, if a leader is supposed to recruit first and then participate in the action, leader_ignores_keep should be set to 'no' at the beginning of the scenario, and be changed to 'yes' in an event later.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|leader_value|'''leader_value'''}}=3: (double) A number 0 or higher which determines the value of enemy leaders as [[#AI_Targets_and_Goals|targets]].  Affects ''move-to-targets CA'' only (and therefore specifically does not apply to attacks).&lt;br /&gt;
&lt;br /&gt;
* {{anchor|passive_leader|'''passive_leader'''}}=no: (bool) If 'yes', the AI leader never moves or attacks, not even to move back to the keep (unless 'passive_leader_shares_keep=yes' is set) or to attack adjacent units, except to obey [leader_goal]s.  Affects all CAs except ''recruitment'' and ''move-leader-to-goals''. {{DevFeature1.15|3}} In addition to 'yes/no', the aspect can now also be set to a comma-separated list of unit ids. The aspect then only applies to leaders with ids matching an id on that list.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|passive_leader_shares_keep|'''passive_leader_shares_keep'''}}=no: (bool) If 'yes', lets the AI leader moves off the keep to share it with allied leaders (if they can reach it next turn) if 'passive_leader=yes' is set.  He also returns to keep to recruit when possible and attacks adjacent enemy units. {{DevFeature1.15|3}} In addition to 'yes/no', the aspect can now also be set to a comma-separated list of unit ids. The aspect then only applies to leaders with ids matching an id on that list.&lt;br /&gt;
&lt;br /&gt;
*'''recruitment_diversity''', '''recruitment_instructions''', '''recruitment_more''', '''recruitment_pattern''', '''recruitment_randomness''', '''recruitment_save_gold''': These aspects can be used to customize recruiting with the new recruitment CA introduced in Wesnoth 1.11.  They are described on a [[AI_Recruitment|separate page]].&lt;br /&gt;
&lt;br /&gt;
*{{anchor|retreat_factor|'''retreat_factor'''}}=0.25 (double) {{DevFeature1.15|11}} Affects ''retreat-injured'' CA only. Determines how injured AI units have to be before they attempt retreating. This is approximately the fraction of the units' hitpoints, but other factors play a role also, such as the terrain the units are on, and leaders and poisoned units retreat somewhat earlier. Setting this to 0 (or negative values) disables retreating. Note that even setting this to very large values still requires units to be somewhat injured before they start retreating.&lt;br /&gt;
&lt;br /&gt;
*{{anchor|retreat_enemy_weight|'''retreat_enemy_weight'''}}=1.0 (double) {{DevFeature1.15|11}} Affects ''retreat-injured'' CA only. When deciding where to retreat to, the AI considers how much healing a location provides and weighs it against the threat of all the enemies that can get there (balanced by the own units that can get there). In this evaluation, it multiplies the enemy threat rating by ''retreat_enemy_weight'', meaning that the larger its value is, the more a unit tries to move away from enemies.  There are three regimes for this aspect:&lt;br /&gt;
** Positive values: Only locations that provide healing (both from terrain and from adjacent healers which have no MP left) are considered. For regenerating units, all hexes are treated as if they provide healing.&lt;br /&gt;
** Zero: Enemy threats are ignored&lt;br /&gt;
** Negative values: All hexes are considered for retreating. The enemy threat rating is multiplied by the absolute value of the aspect value. Thus, if very negative values are used (e.g. -100), this can be used to make units run away from enemies with little consideration for anything else.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|scout_village_targeting|'''scout_village_targeting'''}}=3: (double) The AI multiplies the value of village [[#AI_Targets_and_Goals|targets]] for scouts by this value.  Affects ''move-to-targets'' CA only.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|simple_targeting|'''simple_targeting'''}}=no: (bool) If 'yes', the AI moves its units toward [[#AI_Targets_and_Goals|targets]] one by one (sequentially), without considering whether another unit might be better suited for the current move or target.  If 'no' (the default), all units are considered for all targets.  This is slower, but might result in better moves.  Affects ''move-to-targets'' CA only.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|support_villages|'''support_villages'''}}=no: (bool) Trigger a code path that tries to protect those villages that are threatened by the enemy.  This seems to cause the AI to 'sit around' a lot, so it's only used if it's explicitly enabled.  Affects ''move-to-targets'' CA only.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|village_value|'''village_value'''}}=1: (double) A number 0 or higher which determines how much the AI tries to go for villages as [[#AI_Targets_and_Goals|targets]].  Affects ''move-to-targets'' CA only.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|villages_per_scout|'''villages_per_scout'''}}=4: (int) A number 0 or higher which determines how many scouts the AI recruits. If 0, the AI doesn't recruit scouts to capture villages.  Affects ''recruitment'' CA only.&lt;br /&gt;
&lt;br /&gt;
=== Removed AI Aspects ===&lt;br /&gt;
&lt;br /&gt;
The following AI parameters (aspects) can still be set, their values can be retrieved, and they can be viewed in the gamestate inspector dialog, but they do not have an effect in the RCA AI code any more.  Some other parameters will also likely be removed in the future.  We will update this list accordingly. {{DevFeature1.13|5}} Except for attack_depth, these have now all been removed.  {{DevFeature1.15|0}} attack_depth is now removed as well.&lt;br /&gt;
&lt;br /&gt;
* '''attack_depth'''=5: (int)&lt;br /&gt;
* '''number_of_possible_recruits_to_force_recruit'''=3.1: (double)&lt;br /&gt;
* '''recruitment''': This aspect was used to customize the recruitment of the old default AI (the one used before the RCA AI).  This recruitment code is not used in the RCA AI any more.  Setting recruitment instructions with this aspect is therefore meaningless.  Use the '''recruitment_instructions''' aspect instead.&lt;br /&gt;
** It is, in principle, still possible to use this aspect together with the [[Wesnoth_AI_Framework#Recruitment_Stage|recruitment stage]], but this is discouraged for the reasons given at this link.&lt;br /&gt;
* '''recruitment_ignore_bad_combat'''=no: (bool)&lt;br /&gt;
* '''recruitment_ignore_bad_movement'''=no: (bool)&lt;br /&gt;
&lt;br /&gt;
==AI Targets and Goals==&lt;br /&gt;
&lt;br /&gt;
AI targets are used in the ''move-to-targets'' candidate action (CA) to move the AI's units toward selected units or locations.  The AI engine automatically selects all enemy leaders, enemy units that pose a threat to the AI leader and unowned or enemy-owned villages as targets and assigns them certain [[RCA_AI#RCA_AI_Aspect_and_Goal_Configuration|base values]].  Additional targets can be defined using the [goal] tag.&lt;br /&gt;
&lt;br /&gt;
It is '''very important''' to realize that these targets apply to the ''move-to-targets'' CA only and have no influence on other CAs.  In particular, they have no effect whatsoever on which enemies the AI attacks.  This is often a source of confusion for scenario creators.  More background information on RCA AI targets and goals can be found [[RCA_AI#Use_of_Goals_and_Targets_in_the_RCA_AI|here]].  The sections below only describe how to set up goals in order to add targets for the ''move-to-targets'' CA.&lt;br /&gt;
&lt;br /&gt;
===The [goal] Tag===&lt;br /&gt;
&lt;br /&gt;
The [goal] tag defines units or locations as [[#AI_Targets_and_Goals|move targets]] (not attack targets!) for the AI.  '''Applies to ''move-to-targets'' CA only'''. &amp;lt;-- That is '''extremely important''' to understand, in particular the fact that the [goal] tag has '''no influence whatsoever on attacks'''.&lt;br /&gt;
&lt;br /&gt;
 The following keys/tags can be used:&lt;br /&gt;
* '''name'''=&amp;quot;target&amp;quot;: (string)  The following values are possible and result in different types of targets, as shown in the examples below:&lt;br /&gt;
** ''target'':  The (default) target goal specifies target units (not necessarily enemy units) toward which the AI should move its units. {{DevFeature1.13|5}} target_unit is now a synonym for this.&lt;br /&gt;
** ''target_location'': Specifies target locations toward which the AI should move its units.&lt;br /&gt;
** ''protect_location'': Specifies locations that the AI should protect. Enemy units within the specified distance (''protect_radius'') of one of these locations are marked as targets with the provided value.  Note that the AI will ''not'' station any units around the protected locations.  It will only send units toward enemy units that come within ''protect_radius'' of them.&lt;br /&gt;
** ''protect_unit'': Specifies units (of all sides) that the AI should protect. Enemy units within ''protect_radius'' of one of these units are marked as targets with the provided value.  Note once again that the AI will not place units around the protected units if there are no enemies nearby.&lt;br /&gt;
** ''protect_my_unit'': ('''deprecated''') &amp;lt;s&amp;gt;Specifies units from the AI's own side that the AI should protect. (This is basically the ''protect_unit'' goal with an implied ''side='' in the filter, restricting matching units to the AI's side.) Enemy units within ''protect_radius'' of one of these units are marked as targets with the provided value.  Note once again that the AI will not place units around the protected units if there are no enemies nearby.&amp;lt;/s&amp;gt;&lt;br /&gt;
** ''lua_goal'': A dynamically calculated goal written in Lua. See [[LuaAI#Lua_Goals_and_Targets|here]] for details on how this works.&lt;br /&gt;
&lt;br /&gt;
* '''[criteria]'''=&amp;quot;&amp;quot;: Contains a [[StandardUnitFilter]] (for ''target'', ''protect_unit'' or ''protect_my_unit'') or [[StandardLocationFilter]] (for ''target_location'' or ''protect_location'') describing the targets.&lt;br /&gt;
&lt;br /&gt;
* '''value'''=0: (double) The value of the goal.&lt;br /&gt;
&lt;br /&gt;
* '''protect_radius'''=20: (int) The protection radius.  Applies to ''protect_location'', ''protect_unit'' and ''protect_my_unit''.&lt;br /&gt;
&lt;br /&gt;
* '''id'''=&amp;quot;&amp;quot;: (string)  Optional ID used for [[Modifying_AI_Components#Modifying_Goals|modifying the goal]].&lt;br /&gt;
&lt;br /&gt;
===Examples of [goal] Tag Usage===&lt;br /&gt;
&lt;br /&gt;
'''target:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [goal]&lt;br /&gt;
        [criteria] #NOTE: this is a SUF, because we're targeting a unit&lt;br /&gt;
            side=3&lt;br /&gt;
        [/criteria]&lt;br /&gt;
        value=5&lt;br /&gt;
    [/goal]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''target_location:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [goal]&lt;br /&gt;
        name=target_location&lt;br /&gt;
        [criteria] #NOTE: this is a SLF, because we're targeting a location&lt;br /&gt;
            x,y=42,20&lt;br /&gt;
        [/criteria]&lt;br /&gt;
        value=5&lt;br /&gt;
    [/goal]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''protect_location:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [goal]&lt;br /&gt;
        name=protect_location&lt;br /&gt;
        [criteria] #NOTE: this is a SLF, because we're protecting a location&lt;br /&gt;
            x,y=42,20&lt;br /&gt;
        [/criteria]&lt;br /&gt;
        protect_radius=16&lt;br /&gt;
        value=5&lt;br /&gt;
    [/goal]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''protect_unit:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [goal]&lt;br /&gt;
        name=protect_unit&lt;br /&gt;
        [criteria] #NOTE: this is a SUF, because we're protecting a unit&lt;br /&gt;
            side=3&lt;br /&gt;
        [/criteria]&lt;br /&gt;
        protect_radius=16&lt;br /&gt;
        value=5&lt;br /&gt;
    [/goal]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''How to use protect_unit to protect the own leader''' (We are side 2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [goal]&lt;br /&gt;
        name=protect_unit&lt;br /&gt;
        [criteria]&lt;br /&gt;
            side=2&lt;br /&gt;
            canrecruit=yes&lt;br /&gt;
        [/criteria]&lt;br /&gt;
        protect_radius=8&lt;br /&gt;
        value=5&lt;br /&gt;
    [/goal]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deprecated AI Targeting Aspects ===&lt;br /&gt;
&lt;br /&gt;
The following AI targeting parameters currently still work, but have been superseded by the [[#The_.5Bgoal.5D_Tag|[goal] tag]].  They should not be used any more as they will likely be removed at some point.  These tags only apply to the move-to-targets CA.&lt;br /&gt;
&lt;br /&gt;
* '''[target]'''=&amp;quot;&amp;quot;: '''Deprecated'''. Any number of [target] tags can be used to set targets for the AI. For anything related to 'values', set them relative to other targets. An AI is willing to dedicate twice as many resources and travel twice as far to get to a target worth '2.0' as for a target worth '1.0'.  Applies to move-to-targets CA only.&lt;br /&gt;
** '''[[StandardUnitFilter]]''': Do not use a [filter] tag.&lt;br /&gt;
** '''value'''=1: (double)  A number greater than 0 (default=1) which determines how much the AI tries to move toward units which pass the filter.&lt;br /&gt;
&lt;br /&gt;
* '''[protect_location]'''=&amp;quot;&amp;quot;: '''Deprecated'''. Gives the AI a location to protect. Note that the AI does ''not'' station any units around the location, it only sends units to attack any enemy units that come within the guarding radius of the target.  Applies to move-to-targets CA only.&lt;br /&gt;
** '''x''', '''y''': Standard coordinates. These indicate the location the AI is protecting.&lt;br /&gt;
** '''radius''': The radius around it to protect (0 indicates a single hex). {{DevFeature1.13|5}} This key has been changed to protect_radius, though it's preferred to change old code to use the [goal] tag instead.&lt;br /&gt;
** '''value''': The importance of protecting this location.&lt;br /&gt;
&lt;br /&gt;
* '''[protect_unit]'''=&amp;quot;&amp;quot;: '''Deprecated'''. Gives the AI a set of units to protect. Note once again that the AI does not place units around the protected units if there are no enemies nearby.  Applies to move-to-targets CA only.&lt;br /&gt;
** '''[[StandardUnitFilter]]''': The unit(s) to protect. Do not use a [filter] tag.&lt;br /&gt;
** '''radius''': The radius around it to protect (0 indicates a single hex). {{DevFeature1.13|5}} This key has been changed to protect_radius, though it's preferred to change old code to use the [goal] tag instead.&lt;br /&gt;
** '''value''': The importance of protecting this unit.&lt;br /&gt;
&lt;br /&gt;
* '''protect_leader'''=2.0 and '''protect_leader_radius'''=10: '''Deprecated'''. Target any enemy units that come within 'protect_leader_radius' of the AI leader with a value of 'protect_leader'.  Applies to move-to-targets CA only.&lt;br /&gt;
&lt;br /&gt;
== Filtering which Units Participate in which Actions==&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.15|3}}&lt;br /&gt;
&lt;br /&gt;
Each [[RCA_AI#The_Candidate_Actions_.28CAs.29_of_the_main_loop_Stage_in_the_RCA_AI|candidate action of the default AI]] can be restricted to apply to only a subset of the AI units. This is done by adding a '''[filter_own]''' tag to the '''[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Candidate_Actions|[candidate_action]]]''' tag definition.&lt;br /&gt;
&lt;br /&gt;
Typical use cases:&lt;br /&gt;
* Restricting an action to certain units so that other units are not used to this. For example, village grabbing could be restricted to scout units only, so that slower units do not take detours on their way toward the enemies. See the example below.&lt;br /&gt;
* Excluding units from a certain action in order to have them available for other actions afterward. For example, one might want to add a custom candidate action which moves healers behind injured units (or use the existing [[Micro_AIs|Micro AI]] for this). Ideally, this should happen after ''all'' other units have moved, specifically also after the move-to-targets candidate action (MtT CA) is done. In the default setting, however, the MtT CA would also move the healers. Thus, we would want to exclude them using a '''[filter_own]''' tag.&lt;br /&gt;
* Adding two instances of the same candidate action with different scores to force the order in which units participate in this action. For example, one could add another instance of the move-leader-to-keep CA with a '''[filter_own]''' tag restricting it to one leader, in order to make this leader move to a keep (and therefore recruit) first.&lt;br /&gt;
&lt;br /&gt;
Note that for the combat AI, using the attacks aspect to filter units as described in the next section '''is slightly more efficient'''. Thus, that should be the preferred method if there are many units on the map.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[candidate_action]&lt;br /&gt;
	id=villages&lt;br /&gt;
	engine=cpp&lt;br /&gt;
	name=ai_default_rca::get_villages_phase&lt;br /&gt;
	max_score=60000&lt;br /&gt;
	score=60000&lt;br /&gt;
	[filter_own]&lt;br /&gt;
		type=Wolf Rider&lt;br /&gt;
	[/filter_own]&lt;br /&gt;
[/candidate_action]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Filtering Combat with the ''attacks'' Aspect==&lt;br /&gt;
&lt;br /&gt;
The ''attacks'' aspect lets us filter the units considered by the ''combat'', ''high_xp_attacks'' and ''spread_poison'' candidate actions.  Units on the AI side can be selected with the '''[filter_own]''' tag and enemy units are filtered via '''[filter_enemy]''', both of which take a [[StandardUnitFilter]].  Only units defined in these tags are considered as attacker/target pairs.  To define, for example, an ''attacks'' aspect in which units from the elvish sorceress line are the only attackers, and undead units are the only targets, use&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [aspect]&lt;br /&gt;
        id=attacks&lt;br /&gt;
        [facet]&lt;br /&gt;
            invalidate_on_gamestate_change=yes&lt;br /&gt;
            [filter_own]&lt;br /&gt;
                type=Elvish Sorceress,Elvish Enchantress,Elvish Sylph&lt;br /&gt;
            [/filter_own]&lt;br /&gt;
            [filter_enemy]&lt;br /&gt;
                race=undead&lt;br /&gt;
            [/filter_enemy]&lt;br /&gt;
        [/facet]&lt;br /&gt;
    [/aspect]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Several important notes:&lt;br /&gt;
* The ''attacks'' aspect is a ''composite'' aspect and cannot be defined using the simple syntax of the other ''standard'' aspects.  See [[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|here]] for a description of the syntax of the example.&lt;br /&gt;
* This only works if &amp;lt;code&amp;gt;invalidate_on_gamestate_change=yes&amp;lt;/code&amp;gt; is set.  The reason is that the ''attacks'' aspect internally contains information about all available attacker/target pairs.  These need to be recalculated after each move.  This is explained [[Wesnoth_AI_Framework#Some_more_on_the_invalidation_keys|here]].&lt;br /&gt;
* If [filter_own] or [filter_enemy] are omitted, the selection defaults to all units of the respective sides.&lt;br /&gt;
* '''Most importantly''': The above example results in sorceress-line vs undead attacks being the &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; attacks done by the AI.  No other attacks are executed, no matter how advantageous their outcomes may be.  There is no simple way around that, but it can be accomplished by one of the following means:&lt;br /&gt;
** Setting up the [filter_own] or [filter_enemy] [[StandardUnitFilter]]s to adapt dynamically to the situation on the map.&lt;br /&gt;
** Adding a Lua candidate action which dynamically adjusts the aspect depending on the current situation on the map.  An example of dealing with this is given in the [[Micro_AIs#Micro_AI_Test_and_Demo_Scenarios|Micro AI test scenario]] [https://github.com/wesnoth/wesnoth/blob/master/data/ai/micro_ais/scenarios/protect_unit.cfg ''Protect Unit''].&lt;br /&gt;
** Using [[LuaAI#Dynamic_Lua_Aspects|dynamic Lua aspects]] is in principle also possible, but far from easy due to the complex tables this aspect returns.&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.13|5}}&lt;br /&gt;
&lt;br /&gt;
Though the above code still works in 1.13.5 and later (and will continue to work indefinitely), it can also be simplified a little:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [attacks]&lt;br /&gt;
        invalidate_on_gamestate_change=yes&lt;br /&gt;
        [filter_own]&lt;br /&gt;
            type=Elvish Sorceress,Elvish Enchantress,Elvish Sylph&lt;br /&gt;
        [/filter_own]&lt;br /&gt;
        [filter_enemy]&lt;br /&gt;
            race=undead&lt;br /&gt;
        [/filter_enemy]&lt;br /&gt;
    [/attacks]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Wesnoth AI]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;br /&gt;
[[Category:AI]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Choosing_your_palette&amp;diff=73840</id>
		<title>Choosing your palette</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Choosing_your_palette&amp;diff=73840"/>
		<updated>2024-10-10T03:35:35Z</updated>

		<summary type="html">&lt;p&gt;Egallager: some spellchecking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
When choosing colours for your sprite art it is usually best to use already existing (mainline or UMC) palettes. But what can you do when you want to create your own, individual units?&lt;br /&gt;
&lt;br /&gt;
I'll try to give you a short lesson -and hopefully some insights- into colour theory.&lt;br /&gt;
&lt;br /&gt;
== Analysing existing art ==&lt;br /&gt;
Some of the newer mainline sprites use a lot of shades you (at first) wouldn't expect. Before creating your own images it is good to look at and analyse them.&lt;br /&gt;
Good examples are the Firedragon(green and purple shadows) and Elvish Outrider(yellow highlights on metal)&lt;br /&gt;
&lt;br /&gt;
http://units.wesnoth.org/1.12/pics/core$images$units$monsters$fire-dragon.png&lt;br /&gt;
&lt;br /&gt;
http://units.wesnoth.org/1.12/pics/core$images$units$elves-wood$outrider$outrider.png&lt;br /&gt;
&lt;br /&gt;
Those colours, sparingly used, can create contrast in the picture without breaking the whole image.&lt;br /&gt;
&lt;br /&gt;
== Choosing number of colours ==&lt;br /&gt;
Any material (which doesn't lie completely in shadows) should have at least 4 shades. Bigger surfaces should have up to 6, while the most dominant can have around 8 shades, but try to keep the number low.&lt;br /&gt;
The shades you need are:&lt;br /&gt;
&lt;br /&gt;
1. White: for shiny or bright surfaces&lt;br /&gt;
&lt;br /&gt;
2. Highlighting colour (optional)&lt;br /&gt;
&lt;br /&gt;
3. Base-colour of the material in normal light&lt;br /&gt;
&lt;br /&gt;
4. Blackish outline (Don't use black; The outline can be the same colour for the whole unit)&lt;br /&gt;
&lt;br /&gt;
5.-8. About 2-4 Darker shades of the base-colour (can be replaced with other colours; more of that later)&lt;br /&gt;
&lt;br /&gt;
== Shading depending on material ==&lt;br /&gt;
Metal is usually shiny and therefore should be white where light hits best. It reflects its surroundings, so many different colours could be used. Metal surfaces usually use more shades than other materials&lt;br /&gt;
&lt;br /&gt;
Skin and leather aren't (very) reflective. Oily skin is very shiny (-&amp;gt; high contrast), while dry or dirty skin has a lower difference between shades.&lt;br /&gt;
&lt;br /&gt;
Textile isn't shiny or reflective at all. As result white can only be used for bright fabric. It also creates folds on its own, so light shades and shadows often alternate.&lt;br /&gt;
&lt;br /&gt;
https://forums.wesnoth.org/download/file.php?id=75043.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reusing shades ==&lt;br /&gt;
I'd generally advise '''against'''  using the same shades in the same image on different surfaces as it can make later edits more difficult and look confusing, but sharing the palette between different units can be useful to indicate unity (e.g. units from the same faction).&lt;br /&gt;
&lt;br /&gt;
Nevertheless here are three units, who use only 12 shades of brown, to show you how to reduce colour count&lt;br /&gt;
&lt;br /&gt;
https://forums.wesnoth.org/download/file.php?id=75046.png&lt;br /&gt;
&lt;br /&gt;
These units create different materials and colours by using variating shading method (see above) and quantity of a colour.&lt;br /&gt;
&lt;br /&gt;
The fist one has a lot of orange in his trousers to distinguish it from his skintone. His weapon uses browntones with a hint of purple and green to create the illusion of a natural wooden branch and beige for dry leaves. The golden ornaments are mostly yellow with white as highlights and orange/brown in the shadows.&lt;br /&gt;
&lt;br /&gt;
Nr.2 has a darker but shiny skin, so the contrast is higher (white highlights to brown skin)&lt;br /&gt;
&lt;br /&gt;
The last one has a lighter skin with mostly beige shades. On his shoulders are bronze plates with a lot more orange than the gold ornaments of Nr.1. His skirt and breastplate have nearly the same shades as the skin, but a lot more white (skirt) and brown (armor) to distinguish.&lt;br /&gt;
&lt;br /&gt;
Most of the time the shape of an object can be decisive for the appearance of the material.&lt;br /&gt;
&lt;br /&gt;
== Shadows ==&lt;br /&gt;
Darker shades can be replaced with different colours to create a higher contrast or to give the material an undertone.&lt;br /&gt;
&lt;br /&gt;
The default shadow for Wesnoth is purple. It works best on orange or brown shades, but can be used for almost every colour with good results.&lt;br /&gt;
&lt;br /&gt;
Non-reflective surfaces (e.g. normal clothes) should have just darker shades of the base colour, grey, or the default purple in the shadows. Metal and other reflective materials can use a larger variety.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Complementary colours (e.g dark green shadow for orange materials) let the surface shine a little brighter.&lt;br /&gt;
&lt;br /&gt;
To create the illusion of reflection green (grass,forest) and blue (sky) shades on metal work best.&lt;br /&gt;
&lt;br /&gt;
Other colours can be used to characterize a faction/unit (e.g. blue shadows for units with a water theme, red for a fire theme...)&lt;br /&gt;
&lt;br /&gt;
Additionally the number of shades you replace can have a large effect:&lt;br /&gt;
&lt;br /&gt;
Replace only one shade for a hardly noticeable undertone. It's an easy effect with little effort.&lt;br /&gt;
&lt;br /&gt;
Replace multiple shades with different colours to create properties for the material (e.g rusty surface, magical aura, unique (magical) metals like mythril). It has to be carefully crafted, otherwise it will look very strange.&lt;br /&gt;
&lt;br /&gt;
Replacing multiple shades with the same colour will change the colour of the material. It is only good when desired.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As general rules:&lt;br /&gt;
&lt;br /&gt;
1.Replacing brighter shades will most of the time be more noticeable than replacing dark ones.&lt;br /&gt;
&lt;br /&gt;
2.Replacement-shades should have (roughly) the same brightness as the original shade.&lt;br /&gt;
&lt;br /&gt;
3.Replacement-shades will be less noticeable if they have a low saturation or a similar saturation as the original shade. Can be desired or not.&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
Highlights are bright shades with a different colour than the material. They will mostly be used for metals, but can also give textile a shining ability (-&amp;gt; silk).&lt;br /&gt;
&lt;br /&gt;
If you don't want to change the whole colour of the material, they should only be used very sparely (single pixels). Only use them as replacement for the brightest shades, otherwise use shadows (see above).&lt;br /&gt;
&lt;br /&gt;
Theoretically you could use any colour (with high brightness) to highlight, but bright green and yellow works best most of the time.&lt;br /&gt;
Similar to shadows, a hue with higher saturation will be more invading than a grey colour.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
https://forums.wesnoth.org/download/file.php?id=75000.png&lt;br /&gt;
&lt;br /&gt;
From far away the colours haven't changed too much.&lt;br /&gt;
The material is still clearly recognizable as metal or fabric, but thanks to the colors in the highlight/shadows, it has given it a special kind of glow.&lt;br /&gt;
&lt;br /&gt;
Instead of a dull grey/black the units have a unique color scheme that gives more character to the faction.&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Preprocessor&amp;diff=73561</id>
		<title>Preprocessor</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Preprocessor&amp;diff=73561"/>
		<updated>2024-08-25T10:04:42Z</updated>

		<summary type="html">&lt;p&gt;Egallager: Redirected page to PreprocessorRef&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[PreprocessorRef]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=73560</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=73560"/>
		<updated>2024-08-25T06:42:52Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* A New Order */ bump release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 2 stable releases (1.14 and 1.16) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14 or 1.16 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] (for BfW 1.18)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.7.0 1.7.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Maintenance_tools&amp;diff=73535</id>
		<title>Maintenance tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Maintenance_tools&amp;diff=73535"/>
		<updated>2024-08-17T23:19:50Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* wmlscope */ Update with info from the big block comment at the top of the script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt; __TOC__ &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wesnoth source code distribution includes a couple of tools intended to help authors maintain campaigns, faction &amp;amp; unit packs, and other WML resources. These&lt;br /&gt;
are:&lt;br /&gt;
 &lt;br /&gt;
; wmlscope: a cross-reference lister, useful for finding unresolved macro and resource-file references.&lt;br /&gt;
&lt;br /&gt;
; wmllint: a utility for sanity-checking WML syntax and porting your old WML to the current version of WML.  &lt;br /&gt;
&lt;br /&gt;
; wmlindent: a utility for reindenting WML to a uniform style.&lt;br /&gt;
&lt;br /&gt;
; GUI.pyw: a graphical interface&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
&lt;br /&gt;
You will need a Python 3 interpreter on your system to use these tools.  Linux, *BSD, and Mac OS/X should already have Python 3 installed; for Windows it's a free download&lt;br /&gt;
from http://www.python.org.  You will also need to know how to run command-line tools on your system.&lt;br /&gt;
&lt;br /&gt;
If you're working with Debian or Ubuntu you might have to install the package wesnoth-1.16-tools (or the convenient version).&lt;br /&gt;
 sudo apt install wesnoth-1.16-tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All three tools will require you to supply a &amp;lt;i&amp;gt;directory list&amp;lt;/i&amp;gt;.  This is a set of directories containing the WML files you want to work on.&lt;br /&gt;
&lt;br /&gt;
This page is intended as documentation for users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note to Windows Users:&amp;lt;/u&amp;gt; This means you have to run it from the '''Command Line'''. The command line may be reached by hitting Start, then Run, then &amp;quot;cmd&amp;quot; or &amp;quot;command&amp;quot; depending on your version of Windows.&lt;br /&gt;
&lt;br /&gt;
Example uses:&lt;br /&gt;
 python wmllint path\to\files&lt;br /&gt;
 python wmlindent path\to\files&lt;br /&gt;
&lt;br /&gt;
Another example:&lt;br /&gt;
 &amp;quot;C:\Program Files\Python3.7\python.exe&amp;quot; data\tools\wmllint --dryrun data\core data\{multiplayer,themes} data\campaigns &lt;br /&gt;
(You have to specify the full directory path to the executable if you don't have your environment variables set up correctly).&lt;br /&gt;
The first thing you type is the path to your python executable, followed by a space. The second thing you type is the path to the desired script to run, followed by a space. The third thing you type is the path to the folder (or file) to be processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A convenient way of running wmllint''' on Linux (Debian or Ubuntu) and Windows in comparison, '''Linux''':&lt;br /&gt;
&lt;br /&gt;
Assuming we're working with wesnoth 1.16 or more advanced versions.&lt;br /&gt;
 python3 /usr/share/games/wesnoth/1.16/data/tools/wmllint --dryrun /usr/share/games/wesnoth/1.16/data/core ~/.local/share/wesnoth/1.16/data/add-ons/A_Simple_Campaign 1&amp;gt;wmllint-run.log 2&amp;gt;wmllint-err.log&lt;br /&gt;
I have these commands inside of a file named&lt;br /&gt;
 wmllint_dryrun_ASC.sh&lt;br /&gt;
and execute it by opening a shell (=terminal, console, command window, bash,...), navigating into the directory with that file and typing&lt;br /&gt;
 bash wmllint_dryrun_ASC.sh&lt;br /&gt;
The python3 command should be automatically known on Debian. The path to the script tells the python interpreter what to execute. --dryrun: A wmllint option, see below. The path to the core files is needed to let wmllint know about e.g. defined core units, followed by the path to the add-on that shall be checked; the last two commands cause the result of the wmllint usage to be written into those files in the same directory as the script.&lt;br /&gt;
'''Windows''', this is logically exactly the same as the Linux shell script above, so if you are on a Mac you can probably conclude how you need to adapt the paths:&lt;br /&gt;
 E:\Python37\python.exe E:\Programme\Wesnoth_1.16_git\data\tools\wmllint --dryrun E:\Programme\Wesnoth_1.16_git\data\core E:\Programme\Wesnoth_1.16_git\userdata\data\add-ons\A_Simple_Campaign 1&amp;gt;wmllint-run.log 2&amp;gt;wmllint-err.log&lt;br /&gt;
This is the content of a .txt file, whose extension I rename to .bat and double-click onto it. Opening a command window is not needed this way.&lt;br /&gt;
Since Python isn't natively installed on windows and I don't have environment variables set, the full path to python.exe is given. If your directories contain spaces it may help to include the path in quotes:&lt;br /&gt;
 &amp;quot;C:\Programs\Battle for Wesnoth 1.16\data\tools\wmllint&amp;quot;&lt;br /&gt;
Remember that you do not need to enter all of the commands/paths at once. If it doesn't work, start with only &amp;quot;python&amp;quot; or &amp;quot;C:\Python37\python.exe&amp;quot; or the like and interpret the error messages that you get. If you get an &amp;quot;unknown command&amp;quot;, python isn't installed or environment variables aren't set correctly. After that, you can add the later commands one by one.&lt;br /&gt;
&lt;br /&gt;
== wmlscope ==&lt;br /&gt;
&lt;br /&gt;
The main use for &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; is to find WML macro references without definitions and references to resource files (sounds and images) that don't exist.  These are difficult to spot from in-game because they usually result in silence or a missing image rather than actual broken game logic (see [https://github.com/wesnoth/wesnoth/issues/5332 issue 5332] for more info).  They may happen because of typos in your WML, or because the name of a macro or the location of a resource file changed between versions of the game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; also checks macro invocations for consistency.  It will complain&lt;br /&gt;
if a macro is called with the wrong number of arguments.  In most cases it can deduce information about the type of the literal expected to be passed to a given macro argument by looking at the name of the formal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Formals requiring this type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Literals of this type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;side&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a single side number&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SIDE, *_SIDE, SIDE[0-9]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric or &amp;quot;global&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;numeric&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric integer literal&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SIDE, X, Y, RED, GREEN, BLUE, TURN, PROB, LAYER, TIME, *_SIDE, *NUMBER, *AMOUNT, *COST, *RADIUS, *_X, *_Y, *_INCREMENT, *_FACTOR, *_TIME, *_SIZE, DURATION&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;\-?[0-9]+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;percentage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a percentage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*PERCENTAGE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric or 0\.[0-9]+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;position&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a single x,y coordinate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;POSITION, *_POSITION, BASE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-?[0-9]+,-?[0-9]+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;span&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of coordinates or coordinate ranges&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*_SPAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a numeric, position or ([0-9]+\-[0-9]+,?|[0-9]+,?)+&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;alliance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of side numbers&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SIDES, *_SIDES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a span, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;range&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;an attack range&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;RANGE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;alignment&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;an alignment keyword&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ALIGN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;quot;lawful&amp;quot; or &amp;quot;neutral&amp;quot; or &amp;quot;chaotic&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;types&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of unit types&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TYPES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname, name, or anything that contains spaces and matches no other type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;terrain_pattern&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a set of terrain codes to filter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ADJACENT*, TERRAINLIST*, *TERRAIN_PATTERN, RESTRICTING&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a terrain_code or name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;terrain_code&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a single terrain code, perhaps with overlay&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TERRAIN*, *TERRAIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname or (\*|[A-Z][a-z]+)\^([A-Z][a-z\\|/]+\Z)?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;shortname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a terrain code or a short, capitalized variable name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[A-Z][a-z][a-z]?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a name or identifier&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;NAME, VAR, IMAGESTEM, ID, FLAG, *_NAME, *_ID, NAMESPACE, BUILDER, *_VAR&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;anything without spaces that matches no other type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;optional_string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a string value (may be empty)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ID_STRING, NAME_STRING, DESCRIPTION, IPF&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a string, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a nonempty string not matching any of the preceding types&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;STRING, TYPE, TEXT, *_STRING, *_TYPE, *_TEXT&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname, a name, a stringliteral, or anything that contains spaces and matches no other type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;stringliteral&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a string in doublequotes or a translated string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;quot;.*&amp;quot; or _.* but not _[a-z].*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;image&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;an image path, perhaps with [[ImagePathFunctionWML|image path functions]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*IMAGE, PROFILE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[A-Za-z0-9{}.][A-Za-z0-9_/+{}.-]*\.(png|jpg)(?=(~.*)?)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;sound&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a music or sound filename&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MUSIC, SOUND&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;string ending with &amp;quot;.wav&amp;quot; or &amp;quot;.ogg&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;filter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[FilterWML|WML filter]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;FILTER&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;any non-quoted string containing &amp;quot;=&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WML&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;arbitrary WML fragment&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WML, *_WML&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;any non-quoted string containing &amp;quot;=&amp;quot;, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;affix&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a prefix, suffix, or infix for a variable name&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;AFFIX, *AFFIX, POSTFIX, ROTATION&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;a shortname or name, or the empty string&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;any&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;anything&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;*VALUE, [ARS][0-9]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;anything&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the actual argument is a macro call {.*}, then it matches any formal.  Otherwise, if the formal has an identifiable type, &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; will complain if the actual literal does not match it.&lt;br /&gt;
&lt;br /&gt;
The argument type check only works in macro calls that fit on a single line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; has many options for changing the reports it generates; the more advanced ones are intended for Wesnoth developers.  Invocations for the most commonly useful reports it generates are included in &amp;lt;i&amp;gt;data/tools/Makefile&amp;lt;/i&amp;gt; of the source distribution. Here are some of those reports:&lt;br /&gt;
&lt;br /&gt;
; make unresolved: Report on unresolved macro calls and resource references; also report macro argument-type mismatches.  (This is what you are most likely to want to do). &lt;br /&gt;
&lt;br /&gt;
; make all: Report all macro and resource file references, not just unresolved ones.&lt;br /&gt;
&lt;br /&gt;
; make collisions: Report on duplicate resource files.&lt;br /&gt;
&lt;br /&gt;
For more advanced users, or those who want to understand what the canned Makefile invocations are doing, here is a summary of &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt;'s options. Some of the more advanced options will require you to understand &lt;br /&gt;
[http://docs.python.org/lib/re-syntax.html Python regular expressions].&lt;br /&gt;
&lt;br /&gt;
; -h, --help:                 Emit a help message and quit&lt;br /&gt;
; -c, --crossreference:       Report resolved macro references (implies &amp;lt;tt&amp;gt;-w 1&amp;lt;/tt&amp;gt;)&lt;br /&gt;
; -C, --collisions:           Report duplicate resource files   &lt;br /&gt;
; -d, --deflist:              Make definition list.  (This one is for campaign server maintainers.)&lt;br /&gt;
; -e &amp;lt;i&amp;gt;regexp&amp;lt;/i&amp;gt;, --exclude &amp;lt;i&amp;gt;regexp&amp;lt;/i&amp;gt;:   Ignore files matching the specified regular expression. &lt;br /&gt;
; -f &amp;lt;i&amp;gt;dir&amp;lt;/i&amp;gt;, --from &amp;lt;i&amp;gt;dir&amp;lt;/i&amp;gt;:         Report only on macros defined under &amp;lt;i&amp;gt;dir&amp;lt;/i&amp;gt;&lt;br /&gt;
; -l, --listfiles:            List files that will be processed&lt;br /&gt;
; -r &amp;lt;i&amp;gt;ddd&amp;lt;/i&amp;gt;, --refcount=&amp;lt;i&amp;gt;ddd&amp;lt;/i&amp;gt;:     Report only on macros with references in exactly &amp;lt;i&amp;gt;ddd&amp;lt;/i&amp;gt; files.&lt;br /&gt;
; -t &amp;lt;i&amp;gt;TYPELIST&amp;lt;/i&amp;gt;, --typelist &amp;lt;i&amp;gt;TYPELIST&amp;lt;/i&amp;gt;: List actual &amp;amp; formal argtypes for calls in fname&lt;br /&gt;
; -u, --unresolved:           Report unresolved macro references&lt;br /&gt;
; -w, --warnlevel:            Set to 1 to warn of duplicate macro definitions&lt;br /&gt;
; -p, --progress:             Show progress&lt;br /&gt;
; --force-used reg:           Ignore reference count 0 on names matching regexp&lt;br /&gt;
; --extracthelp:              Extract help from macro definition comments.&lt;br /&gt;
; --unchecked:                Report all macros with untyped formals.&lt;br /&gt;
; --version:                  show program's version number and exit&lt;br /&gt;
&lt;br /&gt;
These options are used with a list of directories as arguments; if none is given,&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; behaves as though the current directory had been specified as a&lt;br /&gt;
single argument.  Each directory is treated as a separate domain for&lt;br /&gt;
macro and resource visibility purposes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; recognizes two kinds of namespace, exporting and non-exporting.&lt;br /&gt;
Exporting namespaces make all their resources and macro names&lt;br /&gt;
globally visible.  You can make a namespace exporting by embedding&lt;br /&gt;
a comment like this in it:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: export=yes&lt;br /&gt;
&lt;br /&gt;
Wesnoth core data is an exporting namespace.  Campaigns are non-exporting;&lt;br /&gt;
they should contain the declaration&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: export=no&lt;br /&gt;
&lt;br /&gt;
somewhere.  &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; will complain when it sees a namespace with no export&lt;br /&gt;
property, then treat it as non-exporting.&lt;br /&gt;
&lt;br /&gt;
You can tell &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; to ignore stretches of config files&lt;br /&gt;
with the following magic comments:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: start ignoring&lt;br /&gt;
    # wmlscope: stop ignoring&lt;br /&gt;
&lt;br /&gt;
Similarly, you can tell &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; to ignore multiple or duplicate macro&lt;br /&gt;
definitions in a range of lines with the following magic comments:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: start conditionals&lt;br /&gt;
    # wmlscope: stop conditionals&lt;br /&gt;
&lt;br /&gt;
The following magic comment:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: prune FOOBAR&lt;br /&gt;
&lt;br /&gt;
will cause &amp;lt;tt&amp;gt;wmlscope&amp;lt;/tt&amp;gt; to forget about all but one of the definitions of&lt;br /&gt;
&amp;lt;tt&amp;gt;FOOBAR&amp;lt;/tt&amp;gt; it has seen.  This will be useful mainly for symbols that have&lt;br /&gt;
different definitions enabled by an &amp;lt;tt&amp;gt;#ifdef&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Due to a preprocessor limitation, inline macros cannot contain a documentation&lt;br /&gt;
string. If you need to document these macros in the HTML macro reference, you&lt;br /&gt;
can use the following directive:&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: docstring FOOBAR&lt;br /&gt;
&lt;br /&gt;
The docstring for the FOOBAR macro will be collected until a non-comment line,&lt;br /&gt;
a &amp;lt;tt&amp;gt;#define&amp;lt;/tt&amp;gt; or another &amp;lt;tt&amp;gt;# wmlscope: docstring&amp;lt;/tt&amp;gt; are found. External&lt;br /&gt;
docstrings '''''must''''' be defined before the macro to which they refer; defining&lt;br /&gt;
two or more external docstrings keeps only the most recent one, but having both an&lt;br /&gt;
external and an internal docstring is allowed (in this case, the internal one&lt;br /&gt;
will be appended to the external one in the macro reference).&lt;br /&gt;
&lt;br /&gt;
This tool does catch one kind of implicit reference: if an attack name&lt;br /&gt;
is specified but no icon is given, the attack icon will default to&lt;br /&gt;
a name generated from the attack name.  This behavior can be suppressed&lt;br /&gt;
by adding a magic comment containing the string &amp;quot;no-icon&amp;quot; to the &amp;lt;tt&amp;gt;name=&amp;lt;/tt&amp;gt;&lt;br /&gt;
line.&lt;br /&gt;
&lt;br /&gt;
The checking done by this tool has a couple of flaws:&lt;br /&gt;
&lt;br /&gt;
(1) It doesn't actually evaluate file inclusions.  Instead, any&lt;br /&gt;
macro definition satisfies any macro call made under the same&lt;br /&gt;
directory.  Exception: when an &amp;lt;tt&amp;gt;#undef&amp;lt;/tt&amp;gt; is detected, the macro is&lt;br /&gt;
tagged local and not visible outside the span of lines where it was&lt;br /&gt;
defined.&lt;br /&gt;
&lt;br /&gt;
(2) It doesn't read &amp;lt;tt&amp;gt;[binary_path]&amp;lt;/tt&amp;gt; tags, as this would require&lt;br /&gt;
implementing a WML parser.  Instead, it assumes that a resource-file&lt;br /&gt;
reference can be satisfied by any matching image file from anywhere&lt;br /&gt;
in the same directory it came from.  The resources under the '''''first'''''&lt;br /&gt;
directory argument (only) are visible everywhere.&lt;br /&gt;
&lt;br /&gt;
(3) A reference with embedded {}s in a macro will have the macro's&lt;br /&gt;
formal args substituted in at WML evaluation time.  Instead, this&lt;br /&gt;
tool treats each {} as a .* wildcard and considers the reference to&lt;br /&gt;
match '''''every''''' resource filename that matches that pattern.&lt;br /&gt;
Under appropriate circumstances this might report a resource filename&lt;br /&gt;
statically matching the pattern as having been referenced even&lt;br /&gt;
though none of the actual macro calls would actually generate it.&lt;br /&gt;
&lt;br /&gt;
Problems (1) and (2) imply that this tool might conceivably report&lt;br /&gt;
that a reference has been satisfied when under actual&lt;br /&gt;
WML-interpreter rules it has not.&lt;br /&gt;
&lt;br /&gt;
The reporting format is compatible with GNU Emacs compile mode.&lt;br /&gt;
&lt;br /&gt;
For debugging purposes, an in-line comment of the form&lt;br /&gt;
&lt;br /&gt;
    # wmlscope: warnlevel NNN&lt;br /&gt;
&lt;br /&gt;
sets the warning level.&lt;br /&gt;
&lt;br /&gt;
== wmllint ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; is a tool for migrating your WML to the current version.  It handles two problems: &lt;br /&gt;
&lt;br /&gt;
* Resource files and macro names may change between versions of the game. &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; knows about these changes and will tweak your WML to fit where it can.&lt;br /&gt;
&lt;br /&gt;
* Between 1.2.x and 1.3.1 the terrain-coding system used in map files underwent a major change. It changed again in a minor way between 1.3.1 and 1.3.2. If you port such old code, use &amp;lt;tt&amp;gt;wmllint-1.4&amp;lt;/tt&amp;gt;, which is located in the same directory as &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;. It will translate your maps for you, unless you use custom terrains in which case you will have to do it by hand.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; also performs various sanity-checking operations, reporting:&lt;br /&gt;
&lt;br /&gt;
* unbalanced tags&lt;br /&gt;
* strings that need a translation mark and do not have them&lt;br /&gt;
* strings that have a translation mark and should not&lt;br /&gt;
* translatable strings containing macro references &lt;br /&gt;
* filter references by description= (id= in 1.5) not matched by an actual unit&lt;br /&gt;
* abilities or traits without matching special notes, or vice-versa&lt;br /&gt;
* consistency between recruit= and recruitment_pattern= instances&lt;br /&gt;
* double space after punctuation in translatable strings.&lt;br /&gt;
* unknown races or movement types in units&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; takes a directory-path argument specifying the WML directories to work on.  It will modify any cfg and map files under those directories that need to be changed.  Here is a summary of its options:&lt;br /&gt;
&lt;br /&gt;
; -h, --help:                 Emit a help message and quit.&lt;br /&gt;
; -c, --clean:                Clean up -bak files.&lt;br /&gt;
; -D, --diffs:                Display diffs between converted and unconverted files.&lt;br /&gt;
; -d, --dryrun:               List changes (-v) but don't perform them.&lt;br /&gt;
; -r, --revert:               Revert the conversion from the -bak files.&lt;br /&gt;
; -m, --missing:              Don't warn about tags without side= keys now applying to all sides.&lt;br /&gt;
; -s, --stripcr:              Convert DOS-style CR/LF to Unix-style LF.&lt;br /&gt;
; -v, --verbose:              Set verbosity; more details below.&lt;br /&gt;
; -K, --known:                Suppress check for unknown unit types, recruits, races, scenarios, etc.&lt;br /&gt;
; -S, --nospellcheck:         Suppress spellchecking&lt;br /&gt;
; --version:                  show program's version number and exit&lt;br /&gt;
&lt;br /&gt;
The verbosity option works like this:&lt;br /&gt;
&lt;br /&gt;
; -v:          lists changes.&lt;br /&gt;
; -v -v:       warns of maps already converted.&lt;br /&gt;
; -v -v -v:    names each file before it's processed.&lt;br /&gt;
; -v -v -v -v: shows verbose parse details (developers only).&lt;br /&gt;
&lt;br /&gt;
The recommended procedure is this:&lt;br /&gt;
&lt;br /&gt;
# Run it with --dryrun first to see what it will do.&lt;br /&gt;
# If the messages look good, run without --dryrun; the old content will be left in backup files with a -bak extension.&lt;br /&gt;
# Eyeball the changes with the --diff option.&lt;br /&gt;
# Use wmlscope, with a directory path including the Wesnoth mainline WML, to check that you have no unresolved references.&lt;br /&gt;
# Test the conversion.&lt;br /&gt;
# Use either --clean to remove the -bak files or --revert to undo the conversion.&lt;br /&gt;
&lt;br /&gt;
Additionally, wmllint tries to locate a spell checker on your system and spell-checks storyline and message strings.  It will work automatically with any of [https://github.com/AbiWord/enchant enchant]'s spellchecking backends (including aspell, myspell, ispell, applespell, hunspell, nuspell, and so on, depending on the version of enchant), provided you have the &amp;lt;tt&amp;gt;enchant.py&amp;lt;/tt&amp;gt; Python library installed. Note that the spellchecking results can vary depending on which backend enchant decides to use.&lt;br /&gt;
&lt;br /&gt;
wmllint supports a number of magic comments to customize its behaviour and avoid false positives. All magic wmllint comments begin with the string &amp;lt;tt&amp;gt;wmllint:&amp;lt;/tt&amp;gt;, followed by some additional keyword and potentially some arguments. In the below explanations, a string of the form &amp;lt;code&amp;gt;[a|b]&amp;lt;/code&amp;gt; means you may use either &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; at that location, while a string of the form &amp;lt;code&amp;gt;&amp;lt;arg&amp;gt;&amp;lt;/code&amp;gt; indicates free text substitution.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt;: Disables checking of terrains and translation marks on the current line only.&lt;br /&gt;
* &amp;lt;code&amp;gt;noconvert&amp;lt;/code&amp;gt;: Disables conversion of terrains and image/sound filenames on the current line only.&lt;br /&gt;
* &amp;lt;code&amp;gt;markcheck [on|off]&amp;lt;/code&amp;gt;: Enables or disables translation mark checking from the current (next?) line onward.&lt;br /&gt;
* &amp;lt;code&amp;gt;no-icon&amp;lt;/code&amp;gt;: Prevents description insertions (what does that mean?)&lt;br /&gt;
* &amp;lt;code&amp;gt;recognize &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;: Indicates that the character with the given name exists even though a declaration (ie a &amp;lt;code&amp;gt;[unit]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;[side]&amp;lt;/code&amp;gt; tag) is not visible.&lt;br /&gt;
* &amp;lt;code&amp;gt;whofield &amp;lt;macro&amp;gt; &amp;lt;number&amp;gt;&amp;lt;/code&amp;gt;: Indicates that the specified macro declares a character whose name is given by the specified argument to the macro.&lt;br /&gt;
* &amp;lt;code&amp;gt;whofield clear &amp;lt;macro&amp;gt;&amp;lt;/code&amp;gt;: Removes the &amp;lt;code&amp;gt;whofield&amp;lt;/code&amp;gt; definition for the specified macro.&lt;br /&gt;
* &amp;lt;code&amp;gt;who &amp;lt;macro&amp;gt; is &amp;lt;name&amp;gt; &amp;lt;name&amp;gt; ...&amp;lt;/code&amp;gt;: Indicates that the specified macro declares one or more characters whose names are given as a space-separated list. This can also be used for macros that auto-recall a list of characters, some of which join later or may die at some point. If a definition for the macro already exists, then the specified names are appended to it. If a name is preceded by a double minus (&amp;lt;code&amp;gt;-- &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;) then it is removed from the definition.&lt;br /&gt;
* &amp;lt;code&amp;gt;unwho all|&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;: Removes the &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; definition for the specified macro, or all &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; definitions.&lt;br /&gt;
* &amp;lt;code&amp;gt;usage of &amp;quot;&amp;lt;unit&amp;gt;&amp;quot; is &amp;lt;class&amp;gt;&amp;lt;/code&amp;gt;: Declares the usage of the specified unit (the &amp;lt;code&amp;gt;usage=&amp;lt;/code&amp;gt; key in the &amp;lt;code&amp;gt;[unit_type]&amp;lt;/code&amp;gt; tag). Useful if you are using macros to generate several similar unit types.&lt;br /&gt;
* &amp;lt;code&amp;gt;usagetype &amp;lt;class&amp;gt;&amp;lt;/code&amp;gt;: Declares a valid usage type for units. &amp;lt;code&amp;gt;usagetypes&amp;lt;/code&amp;gt; is also recognized, and a comma-separated list of usage types can be specified.&lt;br /&gt;
* &amp;lt;code&amp;gt;validate-[on|off]&amp;lt;/code&amp;gt;: Enables or disables stack-based validation checks. Use when you have unbalanced tags in macros.&lt;br /&gt;
* &amp;lt;code&amp;gt;unbalanced-[on|off]&amp;lt;/code&amp;gt;: Similar to above, the precise difference is unclear.&lt;br /&gt;
* &amp;lt;code&amp;gt;no translatables&amp;lt;/code&amp;gt;: Suppresses warnings about a missing textdomain declaration in the current file. Make sure the file really does have no translatable strings!&lt;br /&gt;
* &amp;lt;code&amp;gt;display [on|off]&amp;lt;/code&amp;gt;: Enable or disable warnings about newlines in messages.&lt;br /&gt;
* &amp;lt;code&amp;gt;notecheck [on|off]&amp;lt;/code&amp;gt;: Enable or disable note consistency checks for unit descriptions.&lt;br /&gt;
* &amp;lt;code&amp;gt;deathcheck [on|off]&amp;lt;/code&amp;gt;: Enable or disable the check for units speaking in their death events.&lt;br /&gt;
* &amp;lt;code&amp;gt;[general|directory|local] spellings &amp;lt;word&amp;gt; &amp;lt;word&amp;gt; ...&amp;lt;/code&amp;gt;: Declares the specified space-separated list of words to be valid spellings in the specified context. The context &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; indicates the current file only, while &amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt; means the current file and any siblings in the same directory or subdirectories. The &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; context indicates the spellings are valid anywhere.&lt;br /&gt;
* &amp;lt;code&amp;gt;no spellcheck&amp;lt;/code&amp;gt;: Disables spell checking on the current line.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip-side&amp;lt;/code&amp;gt;: Indicates that there is a missing side declaration at this location that will be provided by a macro expansion.&lt;br /&gt;
* &amp;lt;code&amp;gt;match &amp;lt;string&amp;gt; with &amp;lt;notes_macro&amp;gt;&amp;lt;/code&amp;gt;: Indicates that uses of the specified string in a unit definition (usually a macro, including the curly braces) should be matched up with the specified special notes macro (which is also specified as the full macro with curly braces).&lt;br /&gt;
* &amp;lt;code&amp;gt;no ellipsecheck&amp;lt;/code&amp;gt;: Disables checking of unit ellipses on the current line.&lt;br /&gt;
&lt;br /&gt;
=== Explanations of &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; diagnostics ===&lt;br /&gt;
Some &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; diagnostics may require further explanation for UMC authors to understand; this section will be for providing such explanations, and descriptions of how to solve and/or silence them.&lt;br /&gt;
&lt;br /&gt;
In these, &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt; will be replaced by a string. When the recommended solution also includes a &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt;, it's a suggestion to copy the string from the error message into your code.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nonstandard word-wrap style within message&amp;lt;/code&amp;gt;: This message meant there was an unexpected newline character within a &amp;lt;code&amp;gt;[message]&amp;lt;/code&amp;gt; tag. However, this check was removed in the 1.15.10 release. Pre-1.15.10, add-on developers could silence by putting a &amp;lt;code&amp;gt;# wmllint: display on&amp;lt;/code&amp;gt; comment before the string and a &amp;lt;code&amp;gt;# wmllint: display off&amp;lt;/code&amp;gt; comment after the string, however, post-1.15.10, this is no longer necessary.&lt;br /&gt;
* &amp;lt;code&amp;gt;%s is not a known unit type&amp;lt;/code&amp;gt; (in cases where you'd think the unit type ''would'' be known): This means the unit has a type that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the mainline unit types. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;unknown speaker '%s' of [message]&amp;lt;/code&amp;gt;: use a &amp;lt;code&amp;gt;# wmllint: recognize %s&amp;lt;/code&amp;gt; magic comment, or, alternatively, if the speaker is created by a macro, use a magic comment of the form of either &amp;lt;code&amp;gt;# wmllint: who MACRO is SPEAKER&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;# wmllint: whofield MACRO NUMBER&amp;lt;/code&amp;gt;, depending on whether the macro takes an argument for the unit's name or not.&lt;br /&gt;
* &amp;lt;code&amp;gt;unknown '%s' referred to by id&amp;lt;/code&amp;gt;: use a &amp;lt;code&amp;gt;# wmllint: recognize %s&amp;lt;/code&amp;gt; magic comment, or, alternatively, if the unit is created by a macro, use a magic comment of the form of either &amp;lt;code&amp;gt;# wmllint: who MACRO is UNIT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;# wmllint: whofield MACRO NUMBER&amp;lt;/code&amp;gt;, depending on whether the macro takes an argument for the unit's name or not.&lt;br /&gt;
* &amp;lt;code&amp;gt;%s has unknown advancements&amp;lt;/code&amp;gt; (in cases where you'd think the advancement ''would'' be known): This means the unit has an advancement that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load mainline units for checking advancements. Note that it's also possible that you just made typo, too, so be sure to check your spelling. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;.description may need hand fixup&amp;lt;/code&amp;gt;: This one comes from mucking around with the &amp;lt;code&amp;gt;.description&amp;lt;/code&amp;gt; field of unit data manually in a hackish fashion. There isn't really much of a way to work around it, besides just the &amp;quot;don't do that&amp;quot; solution.&lt;br /&gt;
* &amp;lt;code&amp;gt;tag stack nonempty (%s) at end of file.&amp;lt;/code&amp;gt;: This means that you have unbalanced tags somewhere in the file, e.g. an opener without a closer, or vice versa. This can often be seen when defining macros for unit abilities. A way to fix this warning is to wrap the section with unbalanced tags with a &amp;lt;code&amp;gt;# wmllint: unbalanced-on&amp;lt;/code&amp;gt; magic comment beforehand and a &amp;lt;code&amp;gt;# wmllint: unbalanced-off&amp;lt;/code&amp;gt; magic comment afterwards. As having unbalanced tags will also cause issues for other WML maintenance tools, such as &amp;lt;tt&amp;gt;wmlindent&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;wmlxgettext&amp;lt;/tt&amp;gt;, you may also want to add separate magic comments for each of them (see their documentation for the form they take).&lt;br /&gt;
* &amp;lt;code&amp;gt;unit declaration without side attribute&amp;lt;/code&amp;gt;: the default side for a unit declaration when left implicit is side 1. Specify your unit sides explicitly to solve this.&lt;br /&gt;
* &amp;lt;code&amp;gt;no %s units recruitable at difficulty %s&amp;lt;/code&amp;gt; (even when there are such units recruitable): This diagnostic has to do with matching the &amp;lt;code&amp;gt;usage&amp;lt;/code&amp;gt; key of units recruitable by an AI side with their &amp;lt;code&amp;gt;recruitment_pattern&amp;lt;/code&amp;gt;. It means the unit has a usage that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can know which mainline units are recruitable. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;%s has unknown movement type&amp;lt;/code&amp;gt; (even when you'd think that that movement type ''would'' actually be known): This means the unit has a movetype that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the mainline movement types. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;%s has unknown race&amp;lt;/code&amp;gt; (even when you'd think that that race ''would'' actually be known): This means the unit has a race that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the mainline races. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;derivation of %s from %s does not resolve&amp;lt;/code&amp;gt; (even when you'd think it would): This means that a unit using the [[UnitTypeWML#Other_tags|[base_unit]]] tag specifies a unit ID in that tag that was never defined in mainline or in the add-on. This is why you're supposed to always add Wesnoth's core directory as the first item to be checked when using &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; (which is something that the GUI version of it will do automatically for you), so that it can load the core units for its derivation checks. (You can also silence this warning by passing the &amp;lt;tt&amp;gt;-K&amp;lt;/tt&amp;gt; flag to &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
* &amp;lt;code&amp;gt;[advancefrom] needs to be manually updated to [modify_unit_type] and moved into the _main.cfg file&amp;lt;/code&amp;gt;: This one is pretty self-explanatory: [[UnitTypeWML#Unit_Type|[advancefrom]]] was deprecated in [https://github.com/wesnoth/wesnoth/commit/3950f40f3f0483032bc70b3e57166bd355acd9fc commit 3950f40] due to [https://github.com/wesnoth/wesnoth/issues/3955 issue #3955], and in fact doesn't even work anymore (in 1.16) as per [https://github.com/wesnoth/wesnoth/issues/6204 issue #6204]. The main reason &amp;lt;tt&amp;gt;wmllint&amp;lt;/tt&amp;gt; can't fix this automatically is because it could end up being too complicated for it to figure out which files to edit if there are multiple uses of &amp;lt;code&amp;gt;[advancefrom]&amp;lt;/code&amp;gt;, and it also doesn't want to assume where to put the [[ModificationWML|[modify_unit_type]]] tag in &amp;lt;tt&amp;gt;_main.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== wmlindent ==&lt;br /&gt;
&lt;br /&gt;
Call with no arguments to filter WML on standard input to reindented WML on&lt;br /&gt;
standard output.  If arguments are specified, they are taken to be files to be&lt;br /&gt;
re-indented in place; a directory name causes reindenting on all WML&lt;br /&gt;
beneath it.&lt;br /&gt;
&lt;br /&gt;
The indent unit is four spaces.  Absence of an option to change this is&lt;br /&gt;
deliberate; the purpose of this tool is to ''prevent'' style wars, not encourage&lt;br /&gt;
them.&lt;br /&gt;
&lt;br /&gt;
On non-empty lines, this code never modifies anything but leading and&lt;br /&gt;
trailing whitespace. Leading whitespace will be regularized to the&lt;br /&gt;
current indent; trailing whitespace will be stripped.  After processing&lt;br /&gt;
all lines will end with a Unix-style &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; end-of-line marker.&lt;br /&gt;
&lt;br /&gt;
Runs of entirely blank lines will be reduced to one blank line, except&lt;br /&gt;
in two cases where they will be discarded: (a) before WML closing&lt;br /&gt;
tags, and (b) after WML opening tags.&lt;br /&gt;
&lt;br /&gt;
It is possible to wrap a section of lines in special comments so that&lt;br /&gt;
&amp;lt;tt&amp;gt;wmlindent&amp;lt;/tt&amp;gt; will ignore them.  You may need to do this for unbalanced&lt;br /&gt;
macros (it's better, though, to get rid of those where possible).&lt;br /&gt;
Use '&amp;lt;code&amp;gt;wmlindent: {start,stop} ignoring&amp;lt;/code&amp;gt;' anywhere in a comment.&lt;br /&gt;
&lt;br /&gt;
It is also possible to declare custom openers an closers, e.g for macros&lt;br /&gt;
that are actually control constructs.  To do this, use declarations&lt;br /&gt;
&lt;br /&gt;
    # wmlindent: opener &amp;quot;{EXCEPTIONAL_OPENER &amp;quot;&lt;br /&gt;
    # wmlindent: closer &amp;quot;{EXCEPTIONAL_CLOSER &amp;quot;&lt;br /&gt;
&lt;br /&gt;
The lines after an opener will be indented an extra level; a closer&lt;br /&gt;
and lines following will be indented one level less. Note that these&lt;br /&gt;
declare prefixes; any prefix match to the non-whitespace text of a line&lt;br /&gt;
will be recognized.&lt;br /&gt;
&lt;br /&gt;
The public utility macros &amp;quot;&amp;lt;code&amp;gt;{FOREACH&amp;lt;/code&amp;gt;&amp;quot; and &amp;quot;&amp;lt;code&amp;gt;{NEXT&amp;lt;/code&amp;gt;&amp;quot; come as wired-in exceptions,&lt;br /&gt;
because it is not guaranteed that their indent declarations will be processed&lt;br /&gt;
before the macro library is reached.&lt;br /&gt;
&lt;br /&gt;
Interrupting &amp;lt;tt&amp;gt;wmlindent&amp;lt;/tt&amp;gt; ought to be safe, as each reindenting will be done to a copy&lt;br /&gt;
that is atomically renamed when it's done.  If the output file is identical&lt;br /&gt;
to the input, the output file will simply be deleted, so the timestamp&lt;br /&gt;
on the input file won't be touched.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;--dryrun&amp;lt;/tt&amp;gt; option detects and reports files that would be changed&lt;br /&gt;
without changing them. The &amp;lt;tt&amp;gt;--verbose&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;-v&amp;lt;/tt&amp;gt; option enables reporting&lt;br /&gt;
of files that are (or would be, under &amp;lt;tt&amp;gt;--dryrun&amp;lt;/tt&amp;gt;) changed.  With &amp;lt;tt&amp;gt;-v -v&amp;lt;/tt&amp;gt;,&lt;br /&gt;
unchanged files are also reported.  The &amp;lt;tt&amp;gt;--exclude&amp;lt;/tt&amp;gt; option takes a regexp&lt;br /&gt;
and excludes files matching it.&lt;br /&gt;
&lt;br /&gt;
If you don't apply this tool to your own WML that you wish to submit, the&lt;br /&gt;
mainline-campaign maintainers will do it when and if your code is accepted into the tree.&lt;br /&gt;
&lt;br /&gt;
Note: This tool does not include a parser.  It will produce bad results on WML&lt;br /&gt;
that is syntactically unbalanced.  Unbalanced double quotes that aren't part&lt;br /&gt;
of a multiline literal will also confuse it.  You will receive warnings&lt;br /&gt;
if there's an indent open at end of file or if a closer occurs with&lt;br /&gt;
indent already zero; these two conditions strongly suggest unbalanced WML.&lt;br /&gt;
&lt;br /&gt;
== GUI.pyw ==&lt;br /&gt;
&lt;br /&gt;
Starting from version 1.11.15 and 1.13.0, a GUI (written in Tkinter, plus the themed widgets ttk) is available in the same directory as the other tools. To use it, you need to have a version of Python equal to or greater than 3.1.0 (the 3.0.x series doesn't include the ttk widgets, and as such is unsuitable for this script).&lt;br /&gt;
&lt;br /&gt;
If you're on Linux, be sure to have installed the ''python3-tk'' module, '''or the application won't run at all'''. To install it in a Debian-based distro (like Ubuntu), type this line in a Terminal:&lt;br /&gt;
 sudo apt install python3-tk&lt;br /&gt;
&lt;br /&gt;
To start it, just double click on the GUI.pyw file. The interface is pretty much self-explanatory, and allows you to run wmllint, wmlscope, wmlindent and wmlxgettext, modify their options, select an add-on and save the tools' output as a text file.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Translation Maintenance Commands]] (for &amp;lt;tt&amp;gt;wmlxgettext&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Category:Create]]&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Cpp_features_blocked_by_version&amp;diff=73514</id>
		<title>Cpp features blocked by version</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Cpp_features_blocked_by_version&amp;diff=73514"/>
		<updated>2024-08-11T02:39:10Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Features */ link to GCC's &amp;quot;concepts&amp;quot; meta-bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
This is a listing of C++ features that would be useful to have but can't yet be used. The Feature column is the language or standard library feature (https://en.cppreference.com/w/cpp/compiler_support is a good reference). The Benefit column is what having this feature will allow to be done. The remaining three columns are for the minimum requirements for the feature to be available on each platform. The minimum requirements can be anything - Visual Studio version, compiler version, OS version, etc.&lt;br /&gt;
&lt;br /&gt;
== Benefits that don't justify version increases ==&lt;br /&gt;
This is a non-exhaustive list:&lt;br /&gt;
* Improving compile speed.&lt;br /&gt;
* Pretty much any standard library feature that we can just as well get through boost or other means.&lt;br /&gt;
* Core language features that allow writing more succinct code.&lt;br /&gt;
&lt;br /&gt;
== Benefits that do justify version increases ==&lt;br /&gt;
This is a non-exhaustive list:&lt;br /&gt;
* Required to fix a bug that has a significant impact to players.&lt;br /&gt;
* Core language features that make classes of bugs impossible or significantly harder to accidentally introduce.&lt;br /&gt;
* Required to fix a relevant security vulnerability.&lt;br /&gt;
* A group of multiple smaller features that individually don't justify a version increase, if there's minimal to no impact to developers and players.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature !! Benefit !! Windows !! macOS !! Linux !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Modules || Faster compile time || Unknown || Unknown || Unknown || While part of C++20, usable support seems to be progressing very slowly.&lt;br /&gt;
|-&lt;br /&gt;
| std::starts_with and ends_with || Simplies string checking in various places, including filesystem || MSVC STL 19.21 (VS 2019 16.1) || Apple Clang 10.0.0 (Xcode 10.0 beta (10L176w), 10.0 (10A255), 10.1 (10B61)) || GCC libstdc++ 9/Clang libc++ 6 || Boost offers similar functions.&lt;br /&gt;
|-&lt;br /&gt;
| std::format || Cleans up our numerous uses of manual string concatenation, especially with pango strings in the UI || Unknown || Unknown || Unknown || The wesnoth variable substitution facility offers similar functions, though with a little less versatility (but it could be extended).&lt;br /&gt;
|-&lt;br /&gt;
| std::span || Potential to reduce templates where we only need a container view || Unknown || Unknown || Unknown || &lt;br /&gt;
|-&lt;br /&gt;
| Concepts || Cleaner template requirements (increased code clarity) || Unknown || Unknown || Unknown || https://gcc.gnu.org/bugzilla/show_bug.cgi?id=concepts&lt;br /&gt;
|-&lt;br /&gt;
| Standard feature check macros || Ability to enable features on an individual basis without doing a whole-language flag || Unknown || Unknown || Unknown || Clang and likely GCC already support them on older versions as an extension.&lt;br /&gt;
|-&lt;br /&gt;
| std::filesystem || || Unknown || Just need to target 10.15 || Unknown || We do have boost....&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ReferenceWML&amp;diff=73349</id>
		<title>ReferenceWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ReferenceWML&amp;diff=73349"/>
		<updated>2024-07-30T02:47:57Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* WML toplevel tags */ minor formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== The Wesnoth Markup Language ==&lt;br /&gt;
&lt;br /&gt;
The Wesnoth Markup Language (WML) is used to code almost everything in Wesnoth, including scenarios, units, savefiles, and the user interface layout. WML files are simple, human-readable text files, usually with the .cfg extension, with similarities to INI files and XML. A major feature in WML are macros, which are alike those found in the C language and similarily are handled by a preprocessor. Implementation-wise, WML files are handled mainly by the ''config'' class (and ''simple_wml'' in [[wesnothd]]).&lt;br /&gt;
&lt;br /&gt;
This page is a collection of pointers to different common WML structures.&lt;br /&gt;
&lt;br /&gt;
See [[BuildingScenarios]], [[BuildingCampaigns]] and [[BuildingUnits]]&lt;br /&gt;
for a tutorial style overview.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Note: this reference may contain slight inaccuracies, might not list all existing keys and tags or might contain some deprecated syntax. If you find that this reference doesn't give you the answer to how to implement some feature in WML, the most reliable way is to look at the WML code of existing units and campaigns that have done so.''&lt;br /&gt;
&lt;br /&gt;
== How WML works ==&lt;br /&gt;
&lt;br /&gt;
* [[SyntaxWML]] Description of WML syntax&lt;br /&gt;
* [[VariablesWML]] How to use WML variables&lt;br /&gt;
* [[PreprocessorRef]] the WML preprocessor syntax&lt;br /&gt;
* [[GrammarWML]] A more formal definition of the WML syntax. More useful for implementing a WML parser than for writing WML documents.&lt;br /&gt;
* [[AddonsWML]] Content that can be published and downloaded via the add-ons server&lt;br /&gt;
&lt;br /&gt;
== WML toplevel tags ==&lt;br /&gt;
&lt;br /&gt;
The following covers most of the possible toplevel tags in a typical main WML file. Some minor and dev-oriented tags (not intended for use by UMC) are omitted.&lt;br /&gt;
&lt;br /&gt;
* [[GameConfigWML]] the top level '''[game_config]''' tag&lt;br /&gt;
* [[UnitsWML]] the top level '''[units]''' tag&lt;br /&gt;
** [[AbilitiesWML]] a list of the different abilities a unit or weapon can have&lt;br /&gt;
** [[UnitTypeWML]] how to describe a unit type&lt;br /&gt;
** [[AnimationWML]] how to animate units&lt;br /&gt;
* [[CoreWML]] the top level '''[core]''' tag&lt;br /&gt;
* [[CampaignWML]] the top level '''[campaign]''' tag&lt;br /&gt;
** [[CreditsWML]] how to describe the credits (the '''[about]''' tag)&lt;br /&gt;
* [[ScenarioWML]] the top level tags '''[scenario]''', '''[multiplayer]''', and '''[test]'''&lt;br /&gt;
** [[EventWML]] how to describe an event (the '''[event]''' tag)&lt;br /&gt;
** [[SideWML]] how to describe a side (the '''[side]''' tag)&lt;br /&gt;
** [[MapGeneratorWML]] the random map generator&lt;br /&gt;
** [[TimeWML]] how to describe a day&lt;br /&gt;
** [[IntroWML]] how to describe the intro screen (the '''[story]''' and '''[part]''' tags)&lt;br /&gt;
* [[EraWML]] the top level '''[era]''' tag&lt;br /&gt;
* [[ModificationWML]] the top level '''[modification]''' and '''[resource]''' tags&lt;br /&gt;
* [[TerrainWML]] the top level '''[terrain_type]''' tag&lt;br /&gt;
* [[TerrainGraphicsWML]], the top level '''[terrain_graphics]''' tag&lt;br /&gt;
* [[ThemeWML]] the top level '''[theme]''' tag&lt;br /&gt;
* [[LanguageWML]] the top level '''[language]''' tag&lt;br /&gt;
* [[LocaleWML]] the top level '''[locale]''' tag&lt;br /&gt;
* [[HelpWML]] the top level '''[help]''' tag&lt;br /&gt;
* [[BinaryPathWML]] the top level '''[binary_path]''' tag&lt;br /&gt;
* [[FontsWML]] the top level '''[fonts]''' tag&lt;br /&gt;
* [[GettextForWesnothDevelopers#The_textdomain_tag|Textdomains]] the '''[textdomain]''' tag&lt;br /&gt;
&lt;br /&gt;
Some other files use the WML format, but with different tags.&lt;br /&gt;
&lt;br /&gt;
* [[AchievementsWML]] the '''[achievement_group]''' and '''[achievement]''' tags.&lt;br /&gt;
* [[SavefileWML]] a description of the format of savegames&lt;br /&gt;
** [[ReplayWML]] a description of the format of player actions such as moving a unit&lt;br /&gt;
** [[StatisticalScenarioWML]] used to generate statistics of a savegame&lt;br /&gt;
* [[PblWML]] a description of the format of server-uploadable campaigns&lt;br /&gt;
* [[SchemaWML]] a description of WML files that define the structure of other WML files&lt;br /&gt;
* [[DiffWML]] used to describe structural differences between preprocessed WML documents&lt;br /&gt;
* [[GUIToolkit]] gives an overview of Wesnoth's current UI system and how to create user interfaces with it.&lt;br /&gt;
&lt;br /&gt;
== Other WML tags ==&lt;br /&gt;
&lt;br /&gt;
* [[EventWML]] how to describe an event&lt;br /&gt;
** [[FilterWML]] the construct to filter on [[StandardUnitFilter|units]], [[StandardLocationFilter|locations]], [[StandardSideFilter|sides]], weapons, vision, and WML data.&lt;br /&gt;
** [[ActionWML]] to describe the actions which occur when the event is fired&lt;br /&gt;
*** [[ConditionalActionsWML]] actions that encapsulate conditional filters and the actions to execute if the conditions are met&lt;br /&gt;
*** [[DirectActionsWML]] actions that directly affect gameplay: for example, creating a unit&lt;br /&gt;
**** [[SingleUnitWML]] how to describe a unit (for uses such as placing one on the map with the '''[unit]''' tag)&lt;br /&gt;
*** [[InternalActionsWML]] actions that WML uses internally: for example, storing a variable&lt;br /&gt;
*** [[InterfaceActionsWML]] actions that do not affect gameplay: for example, displaying a message&lt;br /&gt;
*** [[LuaWML]] how to code actions with the Lua language (BfW 1.14 and earlier)&lt;br /&gt;
*** [[LuaAPI]] how to code actions with the Lua language (BfW 1.16 and later)&lt;br /&gt;
* [[AiWML]] how to describe parameters for AI (the '''[ai]''' tag)&lt;br /&gt;
* [[EffectWML]] the construct to modify a unit (the '''[effect]''' tag)&lt;br /&gt;
* [[DescriptionWML]] the structure of WML coded menus like the difficulty chooser of campaigns&lt;br /&gt;
* [[EditorWML]] tags controlling the post-1.4 editor's behavior&lt;br /&gt;
* [[MusicListWML]] for playing music (see also [[Available Music]] for a list of what's available)&lt;br /&gt;
&lt;br /&gt;
== Predefined macros == &lt;br /&gt;
&lt;br /&gt;
Wesnoth ships with a library of predefined macros you should find useful in writing your own WML.&lt;br /&gt;
* [https://www.wesnoth.org/macro-reference.html WML Macros] - description of all such macros.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
* [[ReferenceWMLSyntax]] how this wiki and the pages it links to should be formatted&lt;br /&gt;
* [[ConventionsWML]] how to make your WML more readable&lt;br /&gt;
* [[Wml_optimisation]] how to make your WML code more efficient&lt;br /&gt;
* [[UsefulWMLFragments]] Various pieces of WML for various purposes. If you have some WML you're proud of that you think others can use, add it here.&lt;br /&gt;
* [[Maintenance tools]] for wmlindent, wmllint, wmlscope&lt;br /&gt;
* [[CommandMode]] commands are not strictly speaking part of WML, but they are useful for debugging it, and could be a little hard to find, so linking to them here makes sense.&lt;br /&gt;
* [[MultiplayerServerWML]] is used when communicating with the multiplayer server.&lt;br /&gt;
* [[CampaignServerWML]] is used when managing contributed campaigns on the campaign server.&lt;br /&gt;
* [[ImagePathFunctions]] (IPFs) are used when applying the color function to images, such as marking units as belonging to a team or in TerrainGraphics.&lt;br /&gt;
* [[Pango formatting]] shows ways to enrich descriptions using pango markup, which can use basic html style formatting tags, such as &amp;lt;nowiki&amp;gt;&amp;lt;b&amp;gt;, &amp;lt;i&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt; and others.&lt;br /&gt;
* [[Wesnoth_Formula_Language|Wesnoth Formula Language (WFL)]] often used with $() formulas.&lt;br /&gt;
* [[PreprocessorRef|Syntax of preprocessor mini-language]] : symbols, macros, file inclusions...&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[BuildingMaps]] the text-based format for Wesnoth maps&lt;br /&gt;
* [[TerrainCodeTableWML]] a list of all terrains, and [[TerrainCodesWML]], on how to use them&lt;br /&gt;
* [[MultiHexTutorial]] a description of the multi-hex tiling system&lt;br /&gt;
* [[IGNFileFormat]] a description of the ignore file format&lt;br /&gt;
* [[CompatibilityStandards#Deprecation_levels_-_When_to_remove_deprecated_features|DeprecationLevels]]&lt;br /&gt;
* [[Environment_variables]] a cheat-sheet for CLI environment variables&lt;br /&gt;
* Back to [[Create]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Wesnoth_AI_Framework&amp;diff=73342</id>
		<title>Wesnoth AI Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Wesnoth_AI_Framework&amp;diff=73342"/>
		<updated>2024-07-29T08:50:29Z</updated>

		<summary type="html">&lt;p&gt;Egallager: additional &amp;quot;See Also&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wesnoth AI Framework: A Composite AI ==&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI framework is that of a composite AI.  In other words, rather than the AI being one huge monolithic block, it is composed of a variety of different components which can be combined in a modular fashion (almost) at will.&lt;br /&gt;
&lt;br /&gt;
In its default configuration, Wesnoth provides a predefined combination of these components in the [[RCA AI]].  This configuration can be modified in a multitude of different ways.  Due to the modular setup, it is not only possible to add new AI behavior to before or after the default AI moves, or replace the default AI entirely, but also to insert new behavior routines in between existing components.  This can be done either in addition to or as substitutions for existing components.&lt;br /&gt;
&lt;br /&gt;
This page describes the AI components and their configuration in a general sense.  Check out [[RCA AI]] for a description of how these are assembled into the default AI and [[Wesnoth AI]] for a collection of links to pages explaining how to customize and modify the existing AI or write a completely new AI.&lt;br /&gt;
&lt;br /&gt;
== Types of AI Components ==&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI framework consists of the following types of components:&lt;br /&gt;
&lt;br /&gt;
==== Stages====&lt;br /&gt;
&lt;br /&gt;
These are the fundamental building blocks of the AI.  The AI is set up as a series of stages which are executed in the order in which they are put into the AI configuration.  In other words, all actions of the first stage are executed first, then all actions of the second stage, etc.&lt;br /&gt;
&lt;br /&gt;
While there are six different types of stages, only one of them, called the ''main_loop'' stage, is used in the default AI.  In fact, this stage is sufficient for the vast majority of custom AI applications as well.  We therefore only describe the ''main_loop'' stage and its sub-components in detail.&lt;br /&gt;
&lt;br /&gt;
==== The Candidate Actions of the ''main_loop'' Stage ====&lt;br /&gt;
&lt;br /&gt;
The ''main_loop'' stage consists of a number of candidate actions (CAs), each of which contains an evaluation and an execution function.  For each AI move, the evaluation functions of all CAs are called, with each of them returning a score.  The execution function of the CA with the highest score is then called, which results in an AI move (or in some cases, several moves) to be done.  Then all CAs are evaluated again (including the one that was just executed) and the highest scoring CA is executed, until no CA returns a valid (non-zero) score any more.&lt;br /&gt;
&lt;br /&gt;
Combining candidate actions designed for specific tasks such as attacks or village grabbing, it is possible to create entire AIs in a modular fashion.  The CAs can be put together in whatever order and combination best suits the needs of a scenario.  They do not need to be sorted in order of their evaluation scores and can even return variable scores which adapt to the situation on the map.&lt;br /&gt;
&lt;br /&gt;
For a summary of the candidate actions of the default AI, click [[RCA_AI#The_Candidate_Actions_.28CAs.29_of_the_main_loop_Stage_in_the_RCA_AI|here]].&lt;br /&gt;
&lt;br /&gt;
==== Aspects and Goals====&lt;br /&gt;
&lt;br /&gt;
Aspects are configurable input parameters used to customize a candidate action's behavior.  They are implemented as the the return values of functions that are called by the CAs of the RCA AI.  They can also be called and taken into account by custom CAs, but that is not necessarily always the case.  For example, some of the [[Micro AIs]] respect some of the RCA AI aspects (such as ''avoid''), but not all do.&lt;br /&gt;
&lt;br /&gt;
The return values of the aspect functions can be defined and/or customized using both [[AiWML|WML]] or [[LuaAI#Dynamic_Lua_Aspects|Lua]].&lt;br /&gt;
&lt;br /&gt;
Goals are used similarly to aspects in that they also affect the behavior of the default AI.  They can be used to customize the directions into which the default AI moves its units.  However, both their [[AiWML#AI_Targets_and_Goals|syntax]] and their internal implementation (see below) are different from those of the aspects.&lt;br /&gt;
&lt;br /&gt;
Check out the [[RCA AI]] page for details on which aspects and goals exist and how they are used by the default AI.&lt;br /&gt;
&lt;br /&gt;
==== Engines====&lt;br /&gt;
&lt;br /&gt;
Engines assemble the configurations provided for the individual components of the AI into usable code and execute this code.  In recent Wesnoth versions, you do not need to worry about the engines any more, they are always defined and active by default.  It is sufficient to know that the components can be written in three different languages, C++, Lua and Formula AI (FAI).  Information on how to do this is provided in the links of the [[Wesnoth AI]] page.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that some stages are only set up for specific engines (see below), while the candidate actions, aspects and goals of the ''main_loop'' stage can be written in any of the three languages and can be combined arbitrarily.&lt;br /&gt;
&lt;br /&gt;
== AI Configuration ==&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AIs are assembled from configurations provided in several different places:&lt;br /&gt;
* The default AI parameters in a variety of configuration files in the 'data/ai/' directory&lt;br /&gt;
* Optional [ai] or [modify_ai] tags in era configurations&lt;br /&gt;
* Optional [ai] or [modify_ai] tags in multiplayer faction configurations&lt;br /&gt;
* Optional [ai] or [modify_ai] tags in scenario configurations&lt;br /&gt;
* Optional [ai] tags in individual unit definitions (ie in the [unit] tag) - note that this option may be removed or drastically changed in the future&lt;br /&gt;
&lt;br /&gt;
When the game is created, all these config snippets are merged into a single configuration stored in form of an [ai] tag.  Then, aspects with the same ids are merged.  During the game, whenever a [modify_ai] tag is acted upon (for example in an event), it is added into the existing AI configuration in the same way.&lt;br /&gt;
&lt;br /&gt;
In the following, we describe the syntax of the [ai] tag.  We first show the top-level keys and tags that can be used.  Details on the use of the tags for the individual components follow after that, together with examples and links to more information for each component.&lt;br /&gt;
&lt;br /&gt;
== The [ai] Tag — Top-level Elements ==&lt;br /&gt;
&lt;br /&gt;
AI configurations are set up and stored using the [ai] tag.  It has the following top-level elements, which are described in more detail in the remaining sections of this page.&lt;br /&gt;
&lt;br /&gt;
*'''description'''=&amp;quot;&amp;quot;: (translatable string)  This is the text displayed in the MP setup menu when choosing an AI for a computer player. It is only relevant for reusable AI configurations, for example in [[EraWML]].&lt;br /&gt;
*'''id'''=&amp;quot;&amp;quot;: (string) The id of the [ai] config snippet.  This was originally meant to make it possible to remove [ai] configurations selectively during a game.  However, due to the merging process described above, this information is lost.  The id is therefore meaningless in the current implementation of the AI. {{DevFeature1.13|5}} This id can now be referenced by ''ai_algorithm'' in order to set the base AI algorithm to build on. It is only relevant for reusable AI configurations, for example in [[EraWML]].&lt;br /&gt;
*'''ai_algorithm''': (string) This used to instruct Wesnoth to load a different AI engine instead of the composite AI. {{DevFeature1.13|5}} It now specifies a default AI configuration to load; any AI available at the multiplayer select screen can be chosen, or AIs defined in other addons. It must reference the id attribute of another [ai] tag. It defaults to ai_default_rca; other possible values include experimental_ai and idle_ai. Specifying the ID of an AI defined in ''data/ai/ais/'' or ''/data/ai/dev/'' is roughly equivalent to macro-including that file in your side configuration just above the opening [ai] tag, except that the AI configuration will be loaded on the fly (similar to using [modify_side]switch_ai) rather than included in the preprocessed WML. Additional aspects, stages, and so on can still be added to the [ai] tag as normal.&lt;br /&gt;
*'''mp_rank''': (integer) {{DevFeature1.15|0}} A value that determines in which order available AIs are displayed in the multiplayer selection menu. AIs are listed in ascending order of mp_rank (smallest values first). The mainline default (RCA) AI and Experimental AI have values of 1000 and 1010, respectively, meaning that custom AIs with mp_rank less than 1000 will be listed before any of the default AIs. AIs that do not contain an mp_rank line are shown at the end of the list. It is only relevant for reusable AI configurations, for example in [[EraWML]].&lt;br /&gt;
*'''version'''=&amp;quot;&amp;quot;: (string) This key is currently still needed to distinguish whether aspects are defined using ''standard'' or ''composite'' syntax in the [ai] tag.  If it is omitted, standard syntax is used.  If set to '10703' or '10710', the engine uses composite syntax.  However, '''we are in the process of removing this distinction'''.  When that is done, both types of syntax can be used without needing the ''version'' key, even mixed together inside the same [ai] tag.  We will also deprecate this key when that happens. {{DevFeature1.13|5}} The version key is no longer recognized and will be mistaken as an attempt to set a non-existent &amp;quot;version&amp;quot; aspect. The key should not normally be required even prior to 1.13.5, however.&lt;br /&gt;
*'''[stage]''': Configuration of the stage(s) used in the AI.  Several [stage] tags can be used, even several stages of the same type.  They are executed in the order in which they are put into the [ai] tag.&lt;br /&gt;
*'''[aspect]''': Configuration of the aspects to be used by the AI.  These are in composite aspect format.&lt;br /&gt;
** Most aspects can also be provided using the simpler syntax explained at [[AiWML]].&lt;br /&gt;
*'''[goal]''': Configuration of the goals to be used by the AI.&lt;br /&gt;
*'''[engine]''': This tag used to be needed for the Lua AI engine.  It is not required any more, the Lua engine is created automatically now, just as the two other engines.  If you need information on how this works, check out the [[Lua_AI_Legacy_Methods_Howto|Lua AI legacy documentation]]. Note that this tag is still used internally, so it will almost certainly not be removed in the future.&lt;br /&gt;
*'''[modify_ai]''': The [modify_ai] tag can specify modifications to be applied to the AI immediately. This is the preferred way to add a candidate action to the RCA AI, but can also be used for any other type of modification that [[DirectActionsWML#.5Bmodify_ai.5D|modify_ai]] supports.&lt;br /&gt;
*'''[micro_ai]''': Add a [micro_ai] at initialization time. See [[Micro AIs]] for details. This is equivalent to adding the micro AI at prestart. The side and action keys are not supported here.&lt;br /&gt;
*'''formula'''=&amp;quot;&amp;quot;: (string) Formula AI code to be executed by the AI.  We recommend not using this any more, and it is not guaranteed to continue working.  See the [[Formula_AI_Howto|Formula AI legacy documentation]] for more information. {{DevFeature1.13|5}} As of version 1.13.5 this key is ''definitely not'' recognized at this level. It has likely not been recognized for some time prior to this, as well.&lt;br /&gt;
*'''time_of_day''', '''turns''', '''engine''': {{DevFeature1.13|5}} Specifies default values for aspects given as attributes or simple tags. (Simple tags are tags that do not contain either a value= attribute or a [value] subtag, with the exception that [attacks] is never a simple tag.) This is available prior to 1.13.5, but more limited; the engine attribute is probably more limited, and there might be problems mixing this syntax with fully-specified composite aspects in the same [ai] tag. (That can easily be worked around in a side configuration by splitting the [ai] tag in two.)&lt;br /&gt;
*'''Other tags and attributes''': {{DevFeature1.13|5}} Any other tag or attribute found is assumed to be a simplified aspect. More details about this syntax is given in the section on aspects later on this page. Some of this syntax is available prior to 1.13.5, but it has been generalized in 1.13.5 to automatically work for any compatible aspect. See [[AIWML]] for a list of these tags and attributes.&lt;br /&gt;
&lt;br /&gt;
If no '''ai_algorithm''' is specified, normally the game will automatically load in the default AI, as if you had specified '''ai_algorithm=ai_default_rca'''. However, if there is a '''[stage]''' tag, then this behaviour is disabled and the AI will be built from a blank slate. This special behaviour only comes into play if '''ai_algorithm''' is omitted entirely.&lt;br /&gt;
&lt;br /&gt;
== The [ai] Tag — Stages ==&lt;br /&gt;
&lt;br /&gt;
The [ai] tag can contain one or several stages defined in [stage] tags.  If the AI configuration contains several stages, they are executed in the order in which they are put into the [ai] tag.&lt;br /&gt;
&lt;br /&gt;
While there are six different types of stages available, all AI functionality possible in Wesnoth can be achieved using only a single one, the candidate action evaluation loop stage.  In the default setup, this stage has ''id'' 'main_loop' and we generally simply refer to it as the ''main_loop'' stage.&lt;br /&gt;
&lt;br /&gt;
Other stages exist mostly for legacy reasons from the times in the AI development when the ''main_loop'' stage did not exist yet.  They are currently still functional and kept for backward compatibility reasons, but they are not maintained any more and might be removed in a future Wesnoth release cycle.  We therefore recommend that all custom AI development is done using the ''main_loop'' stage only.&lt;br /&gt;
&lt;br /&gt;
All stages support the '''id''' and '''engine''' tags. The latter defaults to cpp, and can be omitted in this case; the former is a unique identifier which is required if you want to later remove or modify the stage with [modify_ai]. If '''engine'''=cpp, an additional '''name''' tag is required, which tells the game which C++ AI algorithm to use. Currently the only valid values are 'ai_default_rca::candidate_action_evaluation_loop' and 'empty'. The 'empty' stage does nothing at all and should generally not be required.&lt;br /&gt;
&lt;br /&gt;
=== ''main_loop'' Stage Configuration ===&lt;br /&gt;
&lt;br /&gt;
For the ''main_loop'' stage, the [ai] tag contains the following elements:&lt;br /&gt;
&lt;br /&gt;
*'''name''': This must be set to 'ai_default_rca::candidate_action_evaluation_loop', so that the AI knows that this is the ''main_loop'' stage.&lt;br /&gt;
*'''id''': (string)  This is the identifier of the AI.  It is usually set to 'main_loop', but can take on any value.  It only matters if you are planning to remove or modify the stage during a scenario. Note that adding or removing a candidate action counts as a modification.&lt;br /&gt;
*'''engine'''=cpp: (string)  This must be set to 'cpp', which is also the default value.  It can therefore be omitted.&lt;br /&gt;
*'''[candidate_action]''': Candidate action configuration tags.  See [[#The_.5Bai.5D_Tag_.E2.80.94_Candidate_Actions|below]] for details.&lt;br /&gt;
*'''[args]''': {{DevFeature1.13|5}} Lua engine only; specifies arguments to pass to the stage's execution function. This works similarly to the [args] in candidate actions.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
* As an example, the configuration of the ''main_loop'' stage of the default AI is shown [[RCA_AI#RCA_AI_Stage_Configuration|here]].&lt;br /&gt;
* Candidate actions can use any of the three available engines.  Just because the stage uses the ''cpp'' engine does not mean that the CAs need to do so as well.  See [[#The_.5Bcandidate_action.5D_Tag|below]] for an example.&lt;br /&gt;
* While that should rarely ever be necessary, it is possible to include several ''main_loop'' stage definitions in the same [ai] tag.&lt;br /&gt;
** This is done by putting several [stage] tags into the same [ai] tag&lt;br /&gt;
** The AI engine then evaluates the CAs of the first stage in the usual way, until no CA returns a valid score any more.&lt;br /&gt;
** After the first stage is finished, it moves on to the second stage and repeats the process, until all stages have finished.  This ends the AI turn.&lt;br /&gt;
** Obviously, this only makes sense if the sets of CAs of the different stages are not identical (although individual CAs might appear in several stages).&lt;br /&gt;
&lt;br /&gt;
=== Recruitment Stage ===&lt;br /&gt;
&lt;br /&gt;
There is a specialized configurable recruitment stage.  However, this stage uses the recruitment functions of the old ''Default AI'' (the one used before the RCA AI existed).  Anything that can be done with this stage, and more, can now also be done with the ''recruitment'' candidate action using the [[AI_Recruitment#Aspect_recruitment_instructions|''recruitment_instruction'' aspect]].  It should therefore never be necessary to use this stage and we do not describe it here.&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.13|5}} This stage has now been removed. Any use of this stage within the old ''recruitment'' aspect should still continue to work, as the syntax of this stage is compatible with the ''recruitment_instructions'' aspect and ''recruitment'' is now considered a synonym of that newer aspect. Straight uses of this stage, however, will no longer function.&lt;br /&gt;
&lt;br /&gt;
=== Legacy Stages ===&lt;br /&gt;
&lt;br /&gt;
Four other stages are also available.  They do, however, not provide any functionality that is not also possible with the ''main_loop'' stage, only different ways of achieving the same functionality.  We therefore only list them here for completeness, with brief examples and links to legacy documentation.&lt;br /&gt;
&lt;br /&gt;
Note that both this documentation and the stages themselves might be removed at some point.&lt;br /&gt;
&lt;br /&gt;
==== Lua stage ====&lt;br /&gt;
&lt;br /&gt;
Executes Lua code by calling a function created inside a Lua engine. Whatever element is returned by the code in the Lua [engine] tag is accessible here as an upvalue.&lt;br /&gt;
So, for example, &amp;lt;syntaxhighlight lang='lua' inline&amp;gt;(...):execute()&amp;lt;/syntaxhighlight&amp;gt; calls &amp;lt;syntaxhighlight lang='lua' inline&amp;gt;whatever_is_returned_by_lua_engine:execute()&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[stage]&lt;br /&gt;
    engine=&amp;quot;lua&amp;quot;&lt;br /&gt;
    code= &amp;quot;(...):execute()&amp;quot;&lt;br /&gt;
[/stage]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [[Lua_AI_Legacy_Methods_Howto#Using_the_Lua_Stage|Lua AI legacy documentation]].&lt;br /&gt;
&lt;br /&gt;
==== Formula AI Side Formulas Stage ====&lt;br /&gt;
&lt;br /&gt;
This stage executes a given Formula AI side formula.  Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[stage]&lt;br /&gt;
    engine=fai&lt;br /&gt;
    name=side_formulas&lt;br /&gt;
    move=&amp;quot;write_your_formula_here&amp;quot;&lt;br /&gt;
[/stage]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [[Formula_AI_Howto#Setting_up_the_Formula_AI_side_formulas_Stage|Formula AI legacy documentation]].&lt;br /&gt;
&lt;br /&gt;
==== Formula AI Unit Formulas Stage ====&lt;br /&gt;
&lt;br /&gt;
This stage takes no parameters and executes all Formula AI formulas which are attached to units.  Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[stage]&lt;br /&gt;
    engine=fai&lt;br /&gt;
    name=unit_formulas&lt;br /&gt;
[/stage]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [[Formula_AI_Howto#Setting_up_the_Formula_AI_unit_formulas_Stage|Formula AI legacy documentation]].&lt;br /&gt;
&lt;br /&gt;
==== Fallback stage ====&lt;br /&gt;
&lt;br /&gt;
Fall back to another AI.  Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[stage] &lt;br /&gt;
    id=fallback&lt;br /&gt;
    name=testing_ai_default::fallback&lt;br /&gt;
    [ai]&lt;br /&gt;
       ai_algorithm=default_ai&lt;br /&gt;
    [/ai]&lt;br /&gt;
[/stage]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This example shows how to set up a stage to fall back to the old ''Default AI''.  This was useful when it was not clear yet how well the RCA AI would work and whether it would suddenly stop in the middle of the CA evaluation loop.  There is really no reason to use a fallback stage any more these days, especially since it is also possible to simply add another stage to the AI configuration (without that having to be a fallback stage).&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.13|5}} This stage has now been removed since the RCA AI is now the only algorithm and thus there's nothing else to fallback to.&lt;br /&gt;
&lt;br /&gt;
== The [ai] Tag — Candidate Actions ==&lt;br /&gt;
&lt;br /&gt;
The ''main_loop'' stage (and only this stage) can contain an assortment of candidate actions.  They are evaluated and executed in the manner explained [[Wesnoth_AI_Framework#The_Candidate_Actions_of_the_main_loop_Stage|above]].  This section explains how to configure the [candidate_action] tag that goes into the [stage] tag of the ''main_loop'' stage.&lt;br /&gt;
&lt;br /&gt;
All three engines can, in principle, be used to [[Creating_Custom_AIs#Setting_Up_a_Custom_AI|write custom CAs]].  However, only the use of Lua CAs is recommended for this purpose.  Using the ''cpp'' engine has the obvious problem of requiring changes to the Wesnoth source code.  Formula AI CAs are discouraged for the same reasons why we do not recommend using Formula AI stages any more.&lt;br /&gt;
&lt;br /&gt;
=== The [candidate_action] Tag ===&lt;br /&gt;
&lt;br /&gt;
The [candidate_action] tag can contain the following keys:&lt;br /&gt;
&lt;br /&gt;
*'''engine''': This key is required for Wesnoth to know which engine the CA should be processed with.  Possible values are 'cpp', 'lua' and 'fai'.&lt;br /&gt;
*'''id''': The id of the CA is, in principle, optional.  However, it is needed if you want to remove or change the CA after its initial definition.&lt;br /&gt;
*'''name''': The CAs of the default AI are identified by their name, making this a required key for the ''cpp'' engine.  Check [[RCA_AI#Available_Candidate_Actions|here]] for the names of the available default CAs.  The key is optional for other engines.&lt;br /&gt;
*'''max_score''': The maximum score the CA evaluation function might return.  This parameter is optional, but it is useful to reduce the AI move evaluation time.  During each iteration through the evaluation loop, the ''main_loop'' stage only evaluates CAs with ''max_score'' larger than that of the highest-scoring CA found so far during this iteration.  For that same reason, it also makes sense to order CAs by decreasing ''max_score'' in the [stage] tag, even though that is not technically necessary.&lt;br /&gt;
*'''score''': (''cpp'' engine only) The score returned by the CA.  Note that this means that ''cpp'' engine CAs always have fixed scores.&lt;br /&gt;
*'''[filter_own]''': {{DevFeature1.15|3}} The AI units participating in this candidate action can be restricted to only the units defined in this tag.  See the [[AiWML#Filtering_which_Units_Participate_in_which_Actions|AiWML page]] for more information and an example. The content of this tag is [[Creating_Custom_AIs#Creating_Custom_Candidate_Actions|available to both the evaluation and execution function as a WML table]]. This tag is optional. If it is omitted, all AI units are used. (''cpp'' and ''lua'' CAs only; ''fai'' CAs have a different mechanism.)&lt;br /&gt;
&lt;br /&gt;
In addition, [[Creating_Custom_AIs#Creating_Custom_Candidate_Actions|Lua CAs]] also contain the following keys:&lt;br /&gt;
*'''location''': File name, including path, of the AI code for the CA.&lt;br /&gt;
*'''eval_parms''', '''exec_parms''': (deprecated) The parameters to be passed to the evaluation and execution functions of the AI.  These need to be in form of a [[LuaWML#Encoding_WML_objects_into_Lua_tables|Lua table]], without the outer curly brackets.  They are [[Creating_Custom_AIs#Creating_Custom_Candidate_Actions|passed to these functions]] as the second argument, ''cfg''.&lt;br /&gt;
*'''sticky''', '''unit_x''', '''unit_y''': Specifies that this is a [[Lua_AI_Legacy_Methods_Howto#Behavior_.28Sticky.29_Candidate_Actions|behavioral candidate action]] that is automatically removed once the unit on the given location dies.&lt;br /&gt;
*'''[args]''': {{DevFeature1.13|5}} This replaces eval_parms and exec_parms, which are now deprecated and will be removed in a later version. The content of this tag is available to both the evaluation and execution function as a WML table. Details at the link above.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&lt;br /&gt;
* The syntax for Lua CAs has evolved a fair bit, and some of the older syntaxes are still supported. They are deprecated, however, and may be removed in a future version.&lt;br /&gt;
** If you need information on the old syntax, check out the [[Lua_AI_Legacy_Methods_Howto|Lua AI legacy documentation]].&lt;br /&gt;
* The current syntax was originally called ''external Lua CAs''.  However, as this has now become the standard, we drop the ''external'' and simply call them ''Lua CAs''.&lt;br /&gt;
* Formula AI CAs contain some additional keys.  As we do not recommend using the ''fai'' engine any more, we do not describe this syntax here and refer to the [[Formula_AI_Howto|Formula AI legacy documentation]] instead. &lt;br /&gt;
&lt;br /&gt;
Here are examples of [candidate_action] tag uses:&lt;br /&gt;
&lt;br /&gt;
'''Combat CA''' of the default AI:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[candidate_action]&lt;br /&gt;
    id=combat&lt;br /&gt;
    engine=cpp&lt;br /&gt;
    name=ai_default_rca::combat_phase&lt;br /&gt;
    max_score=100000&lt;br /&gt;
    score=100000&lt;br /&gt;
[/candidate_action]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Lua AI CA''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[candidate_action]&lt;br /&gt;
    engine=lua&lt;br /&gt;
    name=return_guardian_bob&lt;br /&gt;
    id=return_guardian_bob&lt;br /&gt;
    max_score=100010&lt;br /&gt;
    location=&amp;quot;~add-ons/my_addon/lua/return_guardian.lua&amp;quot;&lt;br /&gt;
    [args]&lt;br /&gt;
        id=Bob&lt;br /&gt;
        return_x=10&lt;br /&gt;
        return_y=15&lt;br /&gt;
    [/args]&lt;br /&gt;
[/candidate_action]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available Candidate Actions ===&lt;br /&gt;
&lt;br /&gt;
* '''''cpp''''' '''engine''': The available CAs of the default AI are given [[RCA_AI#Available_Candidate_Actions|here]].&lt;br /&gt;
* '''''lua''''' '''engine''': The [[Micro AIs]] are written using Lua CAs, which can be used either as they are or as templates for [[Creating_Custom_AIs#Setting_Up_a_Custom_AI|creating your own CAs]].  They can be found [https://github.com/wesnoth/wesnoth/tree/master/data/ai/micro_ais/cas here].&lt;br /&gt;
* '''''fai''''' '''engine''': As we said above, we do not recommend using the ''fai'' engine any more for creating custom CAs.  However, if you want to do so, a few simple Formula AI CA examples can be found in the [[Formula_AI_Howto|Formula AI legacy documentation]].&lt;br /&gt;
&lt;br /&gt;
== The [ai] Tag — Aspects == &lt;br /&gt;
&lt;br /&gt;
The values of aspects are used by the candidate actions of the default AI as parameters influencing the AI behavior.  Thus, for the most part, they only apply to the CAs of the default AI.  It is, however, possible to write Lua CAs which query certain aspects and take them into account.  For example, some of the [[Micro AIs]] respect some of the default aspects.&lt;br /&gt;
&lt;br /&gt;
A huge number of aspects are available for the default AI.  They are therefore given [[AiWML|their own page]].  Only the syntax and internal structure of the aspect configuration is shown here.&lt;br /&gt;
&lt;br /&gt;
There are two types of syntax for defining aspects.  In the following, we slowly walk you through these using increasingly complex examples, with the full definition of all the possible key and tags listed at the end of this section.&lt;br /&gt;
&lt;br /&gt;
The vast majority of aspects can be defined using a straight-forward syntax of simply defining their values using keys or tags.  These are sometimes referred to as ''simple'' aspects, though the simplicity is in the syntax rather than a feature of the aspect. (In actual fact, this syntax defines facets of a ''composite'' aspect.)  Examples are&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    time_of_day=dawn&lt;br /&gt;
    aggression=0.765&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [avoid]&lt;br /&gt;
        terrain=W*&lt;br /&gt;
    [/avoid]&lt;br /&gt;
[ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
For simple aspect syntax, several additional keys are available in addition to the aspect names themselves, '''time_of_day''' (as shown in the example above), '''turns''' and {{DevFeature1.13|5}} '''engine'''.  These are also explained at [[AiWML]], but these keys basically affect all aspects defined in this simple syntax. {{DevFeature1.13|5}} Currently, every aspect except the attacks aspect can be defined in this way. Prior to 1.13.5, there were also a few other aspects that could not be defined in this way.&lt;br /&gt;
&lt;br /&gt;
{{DevFeature1.13|5}} Occasionally, a more complex structure is required. Any aspect name can be used as a tag which contains the contents of a [facet] tag. Thus, the above two examples could also be implemented like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [aggression]&lt;br /&gt;
        time_of_day=dawn&lt;br /&gt;
        value=0.765&lt;br /&gt;
    [/aggression]&lt;br /&gt;
    [avoid]&lt;br /&gt;
        [value]&lt;br /&gt;
            terrain=W*&lt;br /&gt;
        [/value]&lt;br /&gt;
    [/avoid]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This syntax has the advantage of allowing you to set the facet ID as well as the invalidate keys, if desired. They are not affected by toplevel ''turns'', ''time_of_day'', and ''engine'' keys. However, they expand in a very similar way to the simpler syntax - that is, they define a facet of a composite aspect. In the case of aspects that require a tag in both syntaxes (such as ''avoid''), it's the presence of [value] that disambiguates them.&lt;br /&gt;
&lt;br /&gt;
The third way of defining an aspect is to use the full syntax, which is sometimes called ''complex aspects'', though this is merely a feature of the syntax and not something inherent to any given aspect. All simple aspects expand to equivalent complex aspects, after all. A complex aspect uses the following keys:&lt;br /&gt;
*'''engine'''=cpp: The engine to use for this tag. This can usually be omitted.&lt;br /&gt;
*'''id''': A unique identifier for the aspect. This is mainly used for [modify_ai].&lt;br /&gt;
*'''name''': Only required for the ''cpp'' engine. Possible values are ''standard_aspect'', ''composite_aspect'', ''lua_aspect'', and ''ai_default_rca::aspect_attacks''. Most of these values are only valid with the cpp engine, while ''lua_aspect'' is only valid with the Lua engine. A sensible default is normally chosen, allowing this to be omitted. {{DevFeature1.13|5}} Prior to 1.13.5, some of these values would not work in certain contexts, but in 1.13.5, any valid value may be used here in any aspect context.&lt;br /&gt;
*'''invalidate_on_*''' keys: These four keys are primarily for advanced usage. They are described in more detail below.&lt;br /&gt;
&lt;br /&gt;
A complex aspect contains additional keys and tags based on the value of its name attribute. Standard aspects contain either a '''value''' attribute or a '''[value]''' tag which specifies the attribute's value. The attack aspect contains the '''[filter_own]''' and '''[filter_enemy]''' tags, as described [[AiWML#Filtering_Combat_with_the_attacks_Aspect|here]]. Lua aspects contain additional keys as defined [[LuaAI#Dynamic_Lua_Aspects|here]]. And composite aspects contain the following additional tags:&lt;br /&gt;
*'''[facet]''': A sub-aspect which will be taken as the value of the aspect, unless its '''turns''' and '''time_of_day''' keys do not match. {{DevFeature1.13|5}} Formerly this had to be a standard aspect, but as of 1.13.5 it can be any type of aspect, such as a composite aspect or a Lua aspect.&lt;br /&gt;
*'''[default]''': A sub-aspect which will specifies the default value of the aspect, which is used if there are no facets or if all facets are inactive. {{DevFeature1.13|5}} Formerly this had to be a standard aspect, but as of 1.13.5 it can be any type of aspect, such as a composite aspect or a Lua aspect. '''Note: Overriding the default aspect is generally not recommended. It's just as easy to simply add an unconditional facet instead.'''&lt;br /&gt;
&lt;br /&gt;
At the toplevel within the [ai] tag, complex aspects are defined by an [aspect] tag containing the various keys and tags that define the aspect. Typically, these toplevel aspects are composite aspects, meaning that they contain facets to specify the actual value of the aspect (though they can easily be changed to Lua aspects {{DevFeature1.13|5}} or standard aspects). The '''id''' attribute in an [aspect] tag ''must'' be a valid aspect name, otherwise it will give an error and be ignored.&lt;br /&gt;
&lt;br /&gt;
Let's try to explain this using the aggression example from above.  If we wanted to define that using the complex aspect syntax, it would look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[ai]&lt;br /&gt;
    [aspect]&lt;br /&gt;
        id=aggression&lt;br /&gt;
        [facet]&lt;br /&gt;
            id=custom_aggression # Can be used to remove this facet later&lt;br /&gt;
            time_of_day=dawn&lt;br /&gt;
            value=0.765&lt;br /&gt;
        [/facet]&lt;br /&gt;
    [/aspect]&lt;br /&gt;
[/ai]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most important part is that the composite aspect structure uses so-called ''facets'', which contain the value of the aspect.  If the aspect is a single scalar value, such as in this example, that value is assigned using the '''value''' key.  If it is a tag, such as [avoid], the content of the tag is added inside a '''[value]''' tag.  For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[facet]&lt;br /&gt;
    engine=cpp&lt;br /&gt;
    id=custom_avoid&lt;br /&gt;
    name=standard_aspect&lt;br /&gt;
    [value]&lt;br /&gt;
        terrain=W*&lt;br /&gt;
    [/value]&lt;br /&gt;
[/facet]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That’s it for the most practical purposes, although there a few more parameters in the full aspect configuration:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[aspect]&lt;br /&gt;
    engine=cpp&lt;br /&gt;
    id=aggression&lt;br /&gt;
    invalidate_on_gamestate_change=no&lt;br /&gt;
    invalidate_on_minor_gamestate_change=no&lt;br /&gt;
    invalidate_on_tod_change=yes&lt;br /&gt;
    invalidate_on_turn_start=yes&lt;br /&gt;
    name=composite_aspect&lt;br /&gt;
    [facet]&lt;br /&gt;
        engine=cpp&lt;br /&gt;
        id=&lt;br /&gt;
        invalidate_on_gamestate_change=no&lt;br /&gt;
        invalidate_on_minor_gamestate_change=no&lt;br /&gt;
        invalidate_on_tod_change=yes&lt;br /&gt;
        invalidate_on_turn_start=yes&lt;br /&gt;
        name=standard_aspect&lt;br /&gt;
        time_of_day=dawn&lt;br /&gt;
        turns=&lt;br /&gt;
        value=0.765&lt;br /&gt;
    [/facet]&lt;br /&gt;
    [default]&lt;br /&gt;
        engine=cpp&lt;br /&gt;
        id=custom_aggression&lt;br /&gt;
        invalidate_on_gamestate_change=no&lt;br /&gt;
        invalidate_on_minor_gamestate_change=no&lt;br /&gt;
        invalidate_on_tod_change=yes&lt;br /&gt;
        invalidate_on_turn_start=yes&lt;br /&gt;
        name=standard_aspect&lt;br /&gt;
        time_of_day=dawn&lt;br /&gt;
        turns=&lt;br /&gt;
        value=0.4&lt;br /&gt;
    [/default]&lt;br /&gt;
[/aspect]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, the full list of keys and tags inside the [aspect] tag is as follows:&lt;br /&gt;
* '''engine'''=cpp: The engine processing the aspect.  Most often this is 'cpp', which is also the default and can therefore be omitted, but it is also possible to define dynamic Lua aspects.  These have the syntax [[Wesnoth_AI_Framework#Dynamic_Lua_Aspects|shown below]]. (Note: engine=fai is not supported for aspects.)&lt;br /&gt;
* '''id''': This must be set to the aspect name (yes, name) shown at [[AiWML]].&lt;br /&gt;
* '''name'''=composite_aspect: As described above.&lt;br /&gt;
* '''invalidate_on_turn_start'''=&amp;quot;yes&amp;quot;: (boolean) If &amp;quot;yes&amp;quot;, the value of this aspect is invalidated at the start of each AI turn.&lt;br /&gt;
* '''invalidate_on_tod_change'''=&amp;quot;yes&amp;quot;: (boolean) If &amp;quot;yes&amp;quot;, the value of this aspect is invalidated when the absolute time of day bonus changes anywhere on the map.  This implies invalidate_on_turn_start. {{DevFeature1.13|5}} Before 1.13.5, this was not implemented.&lt;br /&gt;
* '''invalidate_on_gamestate_change'''=&amp;quot;no&amp;quot;: (boolean) If &amp;quot;yes&amp;quot;, the value of this aspect is invalidated on each game state change (on turn start, move, attack, recruit, etc.).  This implies invalidate_on_turn_start.&lt;br /&gt;
* '''invalidate_on_minor_gamestate_change'''=&amp;quot;no&amp;quot;: (boolean) If &amp;quot;yes&amp;quot;, the value of this aspect is invalidated on each minor game state change (on set unit variable, etc). This implies invalidate_on_gamestate_change. (Currently this is not implemented.)&lt;br /&gt;
* '''code''': (Lua engine only)  If the aspect is defined dynamically in Lua, this key contains the Lua code to be executed.  See [[Wesnoth_AI_Framework#Dynamic_Lua_Aspects|below]].&lt;br /&gt;
* '''[facet]''' or '''[default]''': These tags define the aspect values.  '''[default]''' contains the default value assigned to the aspect at the start of the game.  It cannot be modified or deleted.  '''[facet]''' tags contain the custom values for the aspect and override the value from [default].  If there are several [facet] tags, the most recent one active at the current time of day and turn number is applied.  The tags contain the following keys:&lt;br /&gt;
** '''engine''': Same as above, overrides the key with same name in the [aspect] tag&lt;br /&gt;
** '''id''': This has a different meaning from the [aspect] tag ''id'' key.  It can be freely chosen and is only needed if you plan to [[Modifying_AI_Components#Modifying_Standard_Aspects|modify or remove]] the aspect at a later time.  If not, the ''id'' can be omitted. Not used in the [default] tag.&lt;br /&gt;
** The different '''invalidation keys''': They have the same meaning as those under the [aspect] tag, but apply only to this facet.&lt;br /&gt;
** '''name''': Possible values include 'standard_aspect' and 'composite_aspect', as described above.  The engine chooses the correct value automatically, so you never have to worry about this unless you're doing something unusual.&lt;br /&gt;
** '''time_of_day''' and '''turns''': Define when the aspect is active.  See [[AiWML#Defining_Aspects_and_Goals_of_the_RCA_AI|here]] for details. Not valid in '''[default]'''.&lt;br /&gt;
** '''value''' or '''[value]''': This, finally, is the actual value the facet returns.  See the examples above for syntax.&lt;br /&gt;
&lt;br /&gt;
All of this is admittedly a bit complex.  This is done because there are a couple aspects which require all these keys and customization functionality.  In the vast majority of cases, you do not have to worry about this and can simply use the ''standard'' aspect syntax of the first two examples.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If unsure, the easiest way to see the full configuration for any given aspect (or any other AI component, in fact) is either in savefiles, or in-game by typing &amp;lt;code&amp;gt;:inspect&amp;lt;/code&amp;gt; in debug mode and choosing 'ai config full' for a team.&lt;br /&gt;
&lt;br /&gt;
==== Some more on the invalidation keys ====&lt;br /&gt;
&lt;br /&gt;
A few of the aspects return a significant amount of information, as opposed to only a single value (such as ''aggression'') or an array of locations (such as ''avoid'').  For example, the [[AiWML#Filtering_Combat_with_the_attacks_Aspect|''attacks'' aspect]] returns a list of possible attacks of the filtered attacker/target unit pairs, together with ratings for many different aspects of these attacks.  This list, originally established at the beginning of the AI turn, is not valid any more after the first attack has been performed and needs to be reset.  The AI does this by &amp;quot;invalidating&amp;quot; the aspect, after which the aspect information is calculated anew the next time the aspect is queried by a candidate action.&lt;br /&gt;
&lt;br /&gt;
If you check out the default values of the invalidation keys, you see that, in the default configuration, information stored about aspects is reevaluated &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; at the beginning of each AI turn and when the time of day changes.  It is not reevaluated by default after the game state changes (such as after an attack) during the AI turn.  This works for most aspects, but not for the ''attacks'' aspect (and it might not be sufficient for all custom aspects either).  This is the reason why &amp;lt;code&amp;gt;invalidate_on_gamestate_change=yes&amp;lt;/code&amp;gt; needs to be set explicitly for the ''attacks'' aspect as [[AiWML#Filtering_Combat_with_the_attacks_Aspect|shown here]].&lt;br /&gt;
&lt;br /&gt;
As a final comment, you can see at that link that the ''attacks'' aspect is also an exception in that its configuration and definition do not contain a value key or [value] tag, but '''[filter_own]''' and '''[filter_enemy]''' tags. If you look at the configuration in the inspector, you will also see that it has ''name=ai_default_rca::aspect_attacks'' instead of ''standard_aspect''. In other words, the attacks aspect is never a standard aspect (though it can be a composite or {{DevFeature1.13|5}} Lua aspect).&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Lua Aspects ====&lt;br /&gt;
&lt;br /&gt;
It is also possible to [[LuaAI#Dynamic_Lua_Aspects|define aspects dynamically in Lua]].  In that case, no [default] and [facet] tags are added to the configuration.  They are replaced by the '''code''' key used to define the aspect.  For the second example given at the link above, the configuration looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[aspect]&lt;br /&gt;
    code=&amp;lt;&amp;lt;&lt;br /&gt;
        local value = wesnoth.current.turn / 10.&lt;br /&gt;
        return value&lt;br /&gt;
    &amp;gt;&amp;gt;&lt;br /&gt;
    engine=lua&lt;br /&gt;
    id=aggression&lt;br /&gt;
    invalidate_on_gamestate_change=no&lt;br /&gt;
    invalidate_on_minor_gamestate_change=no&lt;br /&gt;
    invalidate_on_tod_change=yes&lt;br /&gt;
    invalidate_on_turn_start=yes&lt;br /&gt;
    name=lua_aspect&lt;br /&gt;
[/aspect]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's also possible to put all of that ''in'' a [facet] tag, rather than in an [aspect] tag – this would allow the Lua aspect to take effect only at certain times of day, for example.&lt;br /&gt;
&lt;br /&gt;
== The [ai] Tag — Goals == &lt;br /&gt;
&lt;br /&gt;
Goals are essentially a special type of aspect, in that they are used to customize the behavior of the default (RCA) AI.  However as [[RCA_AI#RCA_AI_Aspect_and_Goal_Configuration|described here]], the default goals are not stored in configuration files.  Similarly, custom goals are stored in a different format in the AI configuration than the aspects.  Fortunately, this format is the same as that used for [[AiWML#Examples_of_.5Bgoal.5D_Tag_Usage|defining custom goals]].  See the examples given there for syntax.&lt;br /&gt;
&lt;br /&gt;
== The [ai] Tag — Engines == &lt;br /&gt;
&lt;br /&gt;
As stated above, it is not necessary to define engines any more these days.  Just for reference, we list the possible attributes of the [engine] tag here nevertheless.&lt;br /&gt;
&lt;br /&gt;
* '''id''': (string) Optional id of the engine.&lt;br /&gt;
* '''engine'''=cpp: (string) The type of engine used to parse this [engine] config snippet. This will always be cpp, since the lua and fai engines are not equipped for parsing [engine] tags.&lt;br /&gt;
* '''name'''=cpp: (string) Name of the [engine]. Must be a valid engine name (cpp, lua, or fai).&lt;br /&gt;
* '''code''': If &amp;lt;code&amp;gt;name=lua&amp;lt;/code&amp;gt; only.  The Lua code to add to the engine.  See the [[Lua_AI_Legacy_Methods_Howto#Lua_AI_Setup|old method for setting up custom Lua CAs]] for details. It should generally &amp;lt;code&amp;gt;return ...&amp;lt;/code&amp;gt; or similar - if it doesn't, other components using the Lua engine may not be able to function correctly.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Wesnoth AI]]&lt;br /&gt;
* [[AiWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:AI]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=A_Tale_Of_Two_Brothers_Story&amp;diff=73204</id>
		<title>A Tale Of Two Brothers Story</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=A_Tale_Of_Two_Brothers_Story&amp;diff=73204"/>
		<updated>2024-07-03T13:29:01Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* The Chase */ number agreement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the story of [[A Tale of Two Brothers]].&lt;br /&gt;
&lt;br /&gt;
Maghre was a sleepy, remote village in the western reaches of the Kingdom of Wesnoth. The wars and intrigue that plagued the Kingdom passed Maghre by with little impact. This sleepy existence was shattered when a dark mage moved into the area and began preying on the populace to satisfy the needs of his black magic.&lt;br /&gt;
&lt;br /&gt;
Baran was a local mage whom the people looked up to. He organized the villagers' defense but knew that old swords and pitchforks would not be enough. Baran contacted his brother Arvith for help; Arvith was the leader of a small troop of horsemen earning a living as caravan guards.&lt;br /&gt;
&lt;br /&gt;
Arvith heeded his brother's call and he and his company rushed to Baran's assistance.&lt;br /&gt;
&lt;br /&gt;
In 1.18, Baran contacts Arvith by the village's non-magical trade beacon. Older versions involved a magical amulet.&lt;br /&gt;
&lt;br /&gt;
== Rooting Out a Mage ==&lt;br /&gt;
Baran and Arvith set off to eliminate Mordak the Dark Mage. The plan is for Arvith's forces to distract Mordak's while Baran surprises the mage with a magical attack. All is going according to plan until Baran is captured and taken away to the north.&lt;br /&gt;
&lt;br /&gt;
== The Chase ==&lt;br /&gt;
&lt;br /&gt;
Arvith's chase of Baran's kidnappers leads him to an elf-occupied forest. The leader of the elves refuses passage and Arvith's company must defeat them before continuing after Baran's kidnappers. Arvith captures one of the kidnappers who reveals where Baran is being held.&lt;br /&gt;
&lt;br /&gt;
Since 1.16, the elves' motivations are that they suspect Baran of himself being a necromancer. In older versions, the leader of the elves had made a pact with the necromancers.&lt;br /&gt;
&lt;br /&gt;
== Guarded Castle ==&lt;br /&gt;
&lt;br /&gt;
With a mixture of force and cunning, Arvith's men break into the castle and rescue Baran.&lt;br /&gt;
&lt;br /&gt;
== Return to the Village ==&lt;br /&gt;
&lt;br /&gt;
Upon returning to Maghre, the brothers discover than an opportunistic Orcish Warlord has attacked. The village's defenders were depleted by the departure of Arvith's expedition and are barely holding. After subduing the Warlord, Baran is faced with leading his village through a time of rebuilding. It would be an arduous task, but Baran knew his brother would always respond to his call should the need arise once more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Story Material]]&lt;br /&gt;
[[Category:Campaigns - A Tale of Two Brothers]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=StandardUnitFilter&amp;diff=73176</id>
		<title>StandardUnitFilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=StandardUnitFilter&amp;diff=73176"/>
		<updated>2024-06-28T13:10:45Z</updated>

		<summary type="html">&lt;p&gt;Egallager: link to the have_unit tag; clarify role of search_recall_list=yes key&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
&lt;br /&gt;
From [[FilterWML]], this is the standard way of filtering units.&lt;br /&gt;
&lt;br /&gt;
When a unit filter is applied to a map, first it applies to all units on the field,&lt;br /&gt;
based on their coordinates.&lt;br /&gt;
Next it applies to units in the recall list.&lt;br /&gt;
This is important to remember as it means, for example,&lt;br /&gt;
that the tag '''[kill]''' can be used to kill units in the recall list.&lt;br /&gt;
&lt;br /&gt;
You can access the filtered unit within the filter as the ''$this_unit'' variable, see [[SingleUnitWML]] for the possible content of these variables&lt;br /&gt;
&lt;br /&gt;
The term [[StandardUnitFilter]] means that the set of such keys and tags (see below) can appear at that point. Often a [[StandardUnitFilter]] needs to be included in a [filter] tag. But many tags take the [[StandardUnitFilter]] directly as an argument, like [[DirectActionsWML#.5Bkill.5D|[kill]]] and [[ConditionalActionsWML#.5Bhave_unit.5D|[have_unit]]] (which each accept a few additional keys of their own). See [[Special:WhatLinksHere/StandardUnitFilter]] for tags which can contain a StandardUnitFilter.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
The following attributes and sub-tags are allowed:&lt;br /&gt;
&lt;br /&gt;
* '''id''': unit matches the given id. This is the same as ''id'' in the [unit] tag. Note that it is independent of a unit's user-visible name, which can be internationalized independent of this (see [[SingleUnitWML]]). id= can be a comma-separated list, every unit with one of these ids matches.&lt;br /&gt;
* '''speaker''': alias for id (no comma-separated list supported)&lt;br /&gt;
* '''type''': matches the unit's type name (can be a list of types)&lt;br /&gt;
* '''type_adv_tree''': {{DevFeature1.13|7}} matches the type name of the unit and all its advancements (can be a list)&lt;br /&gt;
* '''race''': the race of the unit type. This can be a comma-separated list; the unit's race must match one of the given races. &amp;lt;br&amp;gt;Mainline races are listed in data/core/units.cfg&amp;lt;br&amp;gt; &lt;br /&gt;
* '''variation''': the unit type variation id (can be a list of variation ids)&lt;br /&gt;
* '''has_variation''': matches if the unit type for the unit defines at least one of the variation ids provided as a comma-separated list&lt;br /&gt;
* '''upkeep''': {{DevFeature1.15|3}} The upkeep of the unit. Can be either a non-negative number or one of the special values ''loyal'', ''free'', ''full''. Note that while ''loyal'' and ''free'' are synonymous with an upkeep of 0, the value ''full'' is not synonymous with any single numeric value – it is equivalent to &amp;lt;code&amp;gt;$this_unit.level&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''ability''': unit has an ability with the given id; see [[AbilitiesWML]]. This can be a comma-separated list. The unit must have at least one of the specified abilities.&lt;br /&gt;
* '''ability_type''': {{DevFeature1.13|7}} unit has an ability with the given type (tag name) - eg, ''ability_type=heals'' will match a unit with any healing ability.&lt;br /&gt;
* '''ability_type_active''': {{DevFeature1.13|8}} unit has an ''active'' ability with the given type (tag name).&lt;br /&gt;
* '''ability_id_active''': {{DevFeature1.15|13}} unit has an ''active'' ability with the given id; see [[AbilitiesWML]]&lt;br /&gt;
* '''trait''': {{DevFeature1.13|8}} This can be a comma-separated list. The unit must have at least one of the specified traits.&lt;br /&gt;
* '''status''': {{DevFeature1.13|0}} matches if the unit has the specified status active. This can be a comma-separated list, in which case the unit will match as long as it has one of the listed statuses active (note: possible statuses are listed on the [[SingleUnitWML]] page).&lt;br /&gt;
* '''side''': the unit is on the given side (can be a list)&lt;br /&gt;
* '''has_weapon''': the unit has a weapon with the given name {{DevFeature1.13|5}} Now deprecated&lt;br /&gt;
* {{anchor|has_attack|'''[has_attack]'''}}: {{DevFeature1.13|5}} the unit has a weapon matching the [[StandardWeaponFilter]]. If this is present, '''has_weapon''' is ignored.&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; see '''[role]''', [[InternalActionsWML]]&lt;br /&gt;
* '''level''': the level of the unit (this can be a comma-separated list).&lt;br /&gt;
* '''defense''': current defense of the unit on current tile (chance to hit %, like in movement type definitions)&lt;br /&gt;
* '''movement_cost''': current movement cost of the unit on current tile. Can be a number, range, or comma separated range.&lt;br /&gt;
* '''x,y''': the position of the unit. Note: As a special case '''x,y=recall,recall''' matches units on the recall list. Note that the similar '''search_recall_list=yes''' key is only available as part of the '''[have_unit]''' condition tag, and is not otherwise considered part of a StandardUnitFilter.&lt;br /&gt;
* '''find_in''': name of an array or container variable; if present, the unit will not match unless a unit with the same '''id''' is already stored in the variable&lt;br /&gt;
* {{anchor|filter_vision|'''[filter_vision]'''}}: this tests whether or not the unit is currently visible&lt;br /&gt;
** '''visible''': yes or no, default yes. When &amp;quot;yes&amp;quot;, this matches units that are not obscured by fog or shroud, and that are not hiding (via the {{tag|AbilitiesWML|hides}} ability). When &amp;quot;no&amp;quot;, this matches units that are obscured by fog or shroud, or that are hiding.&lt;br /&gt;
** [[StandardSideFilter]] tags and keys. Filter for who may be able to see (or not see) the unit. If there is *at least one* matching side which can see the unit then the filter matches, and otherwise it fails to match.&lt;br /&gt;
* {{anchor|filter_wml|'''[filter_wml]'''}}: Converts the unit to WML (as if by '''[store_unit]''') and tests it against a [[FilterWML#Filtering_on_WML_data|WML filter]]. For a list of things in the WML that could be filtered on, see [[SingleUnitWML]] or open a saved game in a text editor. Note that this is slower than other methods, so if possible it's better to use other filter keys and tags; however, if the WML filter contains only a child '''[variables]''', then the unit is not converted to WML and the filter is matched only against the unit's variables (which are already WML).&lt;br /&gt;
* '''[and]''': an extra unit filter. Unless the unit also matches the [and] filter, then it will not count as a match. ''Note: [and],[or], and [not] filters are considered after the containing filter; they are then processed in the order encountered.''&lt;br /&gt;
* '''[or]''': an extra unit filter. If a unit matches the [or] filter, then it will count as a match regardless of conditions in previous filters or the containing filter.&lt;br /&gt;
* '''[not]''': an extra unit filter. If a unit matches the [not] filter, then that unit will not be considered a match by the containing filter.&lt;br /&gt;
* {{anchor|filter_adjacent|'''[filter_adjacent]'''}} with a StandardUnitFilter as argument; do not use a [filter] tag. If present the correct number of adjacent units must match this filter.&lt;br /&gt;
**'''StandardUnitFilter''' tags and keys&lt;br /&gt;
** '''count''': a number, range, or comma separated range; default &amp;quot;1-6&amp;quot;&lt;br /&gt;
** '''adjacent''': a comma separated list of directions; default &amp;quot;n,ne,se,s,sw,nw&amp;quot; (see [[StandardLocationFilter#Directions|notes]])&lt;br /&gt;
** '''is_enemy''': a boolean specifying whether the adjacent unit must be an enemy or an ally (optional)&lt;br /&gt;
** '''$other_unit''': {{DevFeature1.13|2}} Within [filter_adjacent], the special variable $other_unit refers to the filtered unit from the enclosing filter, while $this_unit refers (as with all StandardUnitFilters) to the unit being filtered on.&lt;br /&gt;
* '''[filter_location]''': [[StandardLocationFilter]] - the tile that the unit is standing on matches the location filter.&lt;br /&gt;
*'''[filter_side]''': The currently filtered unit's side must match this [[StandardSideFilter]] for the unit to match.&lt;br /&gt;
**[[StandardSideFilter]] tags and keys&lt;br /&gt;
* '''formula''': A formula using [[Wesnoth Formula Language]]. The &amp;lt;tt&amp;gt;self&amp;lt;/tt&amp;gt; variable is set to the current $this_unit, and the formula should return a boolean. If it returns 0, the filter does not match. Otherwise, the filter does match. {{DevFeature1.13|5}} If the filter has a secondary unit, the formula can access it using the &amp;lt;code&amp;gt;other&amp;lt;/code&amp;gt; variable. Both the unit and the secondary unit are a '''unit object''', with keys documented [[#Wesnoth_Formula_Language|below]]. Do not surround the formula in &amp;lt;code&amp;gt;$(...)&amp;lt;/code&amp;gt;, since that will erase the &amp;lt;tt&amp;gt;self&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
* '''lua_function''': the name of a [[LuaWML|Lua]] function in the global environment that takes a unit as an argument and returns true if the given unit matches the filter. {{DevFeature1.13|5}} Non-global functions can now be used here by building a dot-separated &amp;quot;path&amp;quot;. Note that this is not actually interpreted as Lua code even though it superficially resembles it, so using a Lua keyword in the path will work, for example &amp;quot;my_filter_functions.goto&amp;quot; will correctly use the function which in actual Lua code would need to be referenced as &amp;lt;code&amp;gt;my_filter_functions[&amp;quot;goto&amp;quot;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
* {{anchor|filter_ability|'''[experimental_filter_ability]'''}}: {{DevFeature1.17|17}} [[StandardAbilityFilter]] matches if the unit has an ability with the given properties - eg, ''[experimental_filter_ability]affect_self=yes'' will match a unit with any ability with ''affect_self=yes''.&lt;br /&gt;
* {{anchor|filter_ability_active|'''[experimental_filter_ability_active]'''}}: {{DevFeature1.17|17}} [[StandardAbilityFilter]] matches if the unit has an ''active'' ability with the given properties - eg, ''[experimental_filter_ability_active]affect_adjacent=yes'' will match a unit with any ''active'' ability with ''[affect_adjacent]''. The attributes checked are the same as for [experimental_filter_ability].&lt;br /&gt;
&lt;br /&gt;
== [[Wesnoth Formula Language]] ==&lt;br /&gt;
&lt;br /&gt;
When using the '''formula''' key, the '''self''' and (if present) '''other''' objects support the following keys:&lt;br /&gt;
&lt;br /&gt;
* '''x''', '''y''', '''loc''' - the latter is a '''location object''' such as what would be returned from [[Wesnoth_Formula_Language#loc|loc()]].&lt;br /&gt;
* '''id'''&lt;br /&gt;
* '''type'''&lt;br /&gt;
* '''name'''&lt;br /&gt;
* '''usage'''&lt;br /&gt;
* '''canrecruit''', '''leader'''&lt;br /&gt;
* '''undead''' - true if the unit has the ''not_living'' status&lt;br /&gt;
* '''attacks''' - a list of '''[[FilterWML#Filtering_Weapons|weapon objects]]'''&lt;br /&gt;
* '''abilities''' - a list of the ability IDs the unit possesses&lt;br /&gt;
* '''hitpoints''', '''max_hitpoints'''&lt;br /&gt;
* '''experience''', '''max_experience'''&lt;br /&gt;
* '''moves''', '''max_moves'''&lt;br /&gt;
* '''attacks_left''', '''max_attacks'''&lt;br /&gt;
* '''level''', '''full''' - '''full''' refers to the unit's level to support the formula &amp;lt;syntaxhighlight lang=wfl inline&amp;gt;upkeep = full&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* '''traits''' - a list of the trait IDs&lt;br /&gt;
* '''objects''' {{DevFeature1.19|0}} - a list of the objects IDs&lt;br /&gt;
* '''advancements_taken''' {{DevFeature1.19|0}} - a list of the advancements taken IDs&lt;br /&gt;
* '''traits_count''' {{DevFeature1.19|0}} - number of traits used by unit regardless of IDs&lt;br /&gt;
* '''objects_count''' {{DevFeature1.19|0}} -  number of objects used by unit regardless of IDs&lt;br /&gt;
* '''advancements_taken_count''' {{DevFeature1.19|0}} -  number of advancements taken used by unit regardless of IDs&lt;br /&gt;
* '''extra_recruit'''&lt;br /&gt;
* '''advances_to'''&lt;br /&gt;
* '''status''' - a list of active statuses&lt;br /&gt;
* '''side_number'''&lt;br /&gt;
* '''cost'''&lt;br /&gt;
* '''upkeep'''&lt;br /&gt;
* '''loyal''' - a constant 0 to support the formula &amp;lt;syntaxhighlight lang=wfl inline&amp;gt;upkeep = loyal&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* '''hidden'''&lt;br /&gt;
* '''petrified''' - true if the unit has the '''petrified''' status&lt;br /&gt;
* '''resting'''&lt;br /&gt;
* '''role'''&lt;br /&gt;
* '''race'''&lt;br /&gt;
* '''gender'''&lt;br /&gt;
* '''variation'''&lt;br /&gt;
* '''zoc'''&lt;br /&gt;
* '''alignment'''&lt;br /&gt;
* '''facing'''&lt;br /&gt;
* '''resistance''', '''movement_cost''', '''vision_cost''', '''jamming_cost''', '''defense''' - {{DevFeature1.15|3}} Maps containing the basic movetype data. The '''defense''' and '''resistance''' maps contain the actual defense and resistance values, rather than the values specified in the WML, so you do not need to subtract them from 100.&lt;br /&gt;
* '''flying''' {{DevFeature1.15|3}}&lt;br /&gt;
* '''vars''' - WFL variables owned by the unit, which can be set and used by FormulaAI&lt;br /&gt;
* '''wml_vars''' - the WML variables stored in the unit&lt;br /&gt;
* '''n''', '''s''', '''ne''', '''se''', '''nw''', '''sw''', '''lawful''', '''chaotic''', '''neutral''', '''liminal''', '''male''', '''female''' - these are all defined to be the equivalent string so that, for example, you can write a formula like &amp;lt;syntaxhighlight lang=wfl inline&amp;gt;alignment = liminal and gender = female&amp;lt;/syntaxhighlight&amp;gt; without needing to quote the alignment and gender strings.&lt;br /&gt;
&lt;br /&gt;
== A Note about Re-Using the Same Attribute ==&lt;br /&gt;
You are limited to having each attribute, such as '''id''', appear once or less in a [[StandardUnitFilter]]. However, this can be worked around. If you have several specific units you want excepted from matching, use a separate [or] subfilters for each one. Also you can use [not] subfilters. For example to kill ([kill] uses the standard unit filter) all units except Gwiti Ha'atel and Tanar you can do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[kill]&lt;br /&gt;
    [not]&lt;br /&gt;
        id=Gwiti Ha'atel&lt;br /&gt;
    [/not]&lt;br /&gt;
    [not]&lt;br /&gt;
        id=Tanar&lt;br /&gt;
    [/not]&lt;br /&gt;
[/kill]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And similarly if you wanted to kill both Gwiti Ha'atel and Tanar, but no one else you could do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='wml'&amp;gt;&lt;br /&gt;
[kill]&lt;br /&gt;
    id=Gwiti Ha'atel&lt;br /&gt;
    [or]&lt;br /&gt;
       id=Tanar&lt;br /&gt;
    [/or]&lt;br /&gt;
[/kill]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
* [[FilterWML/Examples_-_How_to_use_Filter|How To Use Filter (with examples)]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[FilterWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=How_to_Shade&amp;diff=73169</id>
		<title>How to Shade</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=How_to_Shade&amp;diff=73169"/>
		<updated>2024-06-26T08:10:09Z</updated>

		<summary type="html">&lt;p&gt;Egallager: minor copyediting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right; margin-left:1em;&amp;quot;&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For artists seeking a better understanding of '''How to Shade''', here is a guide.&lt;br /&gt;
&lt;br /&gt;
The only way that we are capable of seeing things is by light passing into our eyes.  It is a good visualization to think of light as little particles - balls if you will, that are created at a light source (the filament of a lamp, for example, or the flame of a candle), and bounce around off of surfaces until they are absorbed by the retina of our eyes, or absorbed by the many surfaces around us.  These little balls of light are called &amp;quot;photons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
One of the first things you must understand about light is that, for any scene you stand in, you only see an infinitesimally small portion of the light in that scene - you only see what passes into your eye.  Many thousands of times more light never makes it in there, and hence, is never seen.  It is absorbed by materials around you, and turned into heat, or ricocheted off into the distance.&lt;br /&gt;
&lt;br /&gt;
All of the light that you see depends just as much on where YOU are, as on what it is like.  Think about how the moon reflects off of water - have you ever noticed how it moves with you if you yourself move?  It doesn't stop shining at the place it was shining before just to accommodate you - no, it's still shining there after you leave.  In fact, it's shining everywhere around the water.&lt;br /&gt;
&lt;br /&gt;
===Reflection===&lt;br /&gt;
When light bounces off of something, it follows the basic rule of reflection - the angle that the light comes in at is the same angle that the light travels away at.  The easiest way to visualize this is by thinking of how a pool ball bounces off the side of a pool table.&lt;br /&gt;
&lt;br /&gt;
http://gs295.sp.cs.cmu.edu/brennan/files/jetryl/tutorials/how-to-shade/shading-reflection1.png&lt;br /&gt;
&lt;br /&gt;
The trick is - this is true in 3 dimensions as well as two.  If you toss a rubber ball at the ground, it will bounce up at the same angle that it hit the ground at.&lt;br /&gt;
&lt;br /&gt;
http://gs295.sp.cs.cmu.edu/brennan/files/jetryl/tutorials/how-to-shade/shading-reflection2.png&lt;br /&gt;
&lt;br /&gt;
All of these angles have to be measured, though, from something called the '''normal angle''' - something perpendicular to the surface (which means the same thing in both 2 and 3 dimensions).  In a game of pool, the normal angle to the side of the pool table would be a line drawn straight out from the side of the table.  Each side has its own normal angle, just as each surface has its own normal angle.&lt;br /&gt;
&lt;br /&gt;
If you are thinking of the floor, the normal angle to it would be something that is perpendicular to both north-south, AND east-west.  The only option for that is either straight up or straight down.  So, if you drop a ball straight down onto the floor, it will reflect off of that floor at the same angle as it hit the floor at.  In this case, it hit the floor at 0°, and thus it will bounce straight back up - also at 0°.  If you toss a ball forward, and it hits the ground at 45°, it will bounce back up, on the opposite side of the &amp;quot;normal&amp;quot; angle.&lt;br /&gt;
&lt;br /&gt;
If you don't get this - ask your local math teacher.  They do, and they'll be happy to teach you what a normal angle is.  Have them teach it to you, and have them point out to you what the normal angle of a more complex object, like, say, a ball, is.  Also have them show you how things reflect across a normal.&lt;br /&gt;
&lt;br /&gt;
===Planar analysis===&lt;br /&gt;
Planar analysis is an oft-misunderstood technique taught in art studios.  People teach it to help students visualize 3d forms, but really its best use is in approximating shading, by making it easy to find normal angles.  I blather on and on about normal angles in this tutorial, but the concept doesn't make any sense for a surface that isn't flat.&lt;br /&gt;
&lt;br /&gt;
The trick is, to realize that any round surface can be approximated by several flat surfaces.  One of the wonderful examples that we have today, which artists of the past did not, is 3d videogames - especially the more primitive ones, like what were on the first generations of 3d consoles (eg. N64, Playstation).  Notice how all of the round surfaces in those games are actually made up of flat surfaces, just like a crystal.&lt;br /&gt;
&lt;br /&gt;
A flat surface is easy to find the normal of.  And you can approximate any object by chopping it up into flat surfaces.  Each one of these will have a different normal angle.  To make the real drawing, as you cross between these little planes, or polygons, you blend the angles together (or &amp;quot;interpolate&amp;quot; them, or transition between them).&lt;br /&gt;
&lt;br /&gt;
Consider the following two slides from a book by Andrew Loomis - the first showing rather clear planar analysis, and the second showing how it would get worked into a real drawing workflow.&lt;br /&gt;
&lt;br /&gt;
http://gs295.sp.cs.cmu.edu/brennan/files/jetryl/tutorials/how-to-shade/shading-planar-analysis1.png &lt;br /&gt;
http://gs295.sp.cs.cmu.edu/brennan/files/jetryl/tutorials/how-to-shade/shading-planar-analysis2.png&lt;br /&gt;
&lt;br /&gt;
===Approximations===&lt;br /&gt;
The easiest way to approximate the effects of light is to break how light bounces off of something into two categories:  Diffuse, and Specular reflection.&lt;br /&gt;
&lt;br /&gt;
Specular reflection works in the way I described above.&lt;br /&gt;
&lt;br /&gt;
Diffuse reflection doesn't.  It happens because surfaces are not perfectly smooth - and it happens because these surfaces are &amp;quot;apparently&amp;quot; breaking the law of reflection that I stated above.  A surface which is not smooth will cause much of the light which lands on it to bounce off at a random angle, rather than at the same angle it came in at, but on the other side of the normal.&lt;br /&gt;
&lt;br /&gt;
It's still following the law of reflection, but what's happening is that instead of hitting one cohesive surface, the bajillions of photons are bouncing off of tons of tiny little  surfaces, each pointing in their own direction.&lt;br /&gt;
&lt;br /&gt;
A surface that had purely specular reflection would look something like a mirror.  A surface that had, not purely, but very diffuse reflection would look something like a piece of cotton, or charcoal.  Real materials have a mix of both - shinier materials have stronger specular reflections, and weaker diffuse reflections, and vice-versa for dull materials.&lt;br /&gt;
&lt;br /&gt;
Diffuse light accounts for the vast majority of what we are able to see on physical objects.&lt;br /&gt;
&lt;br /&gt;
===How to draw this===&lt;br /&gt;
All this theory has been fine and dandy, but you need to put this on paper.  How you do it, is that you imagine yourself as being a 3d rendering program, and you go through the same steps that it does.&lt;br /&gt;
&lt;br /&gt;
Imagine your view as a camera, taking a picture of the scene.  Your canvas is a square, and the camera is a point behind it.  In order to choose whether something is lit up or not, you fire a ray out from your camera, through a point on your canvas.  Yes, this is a position on the page you're drawing on - that page exists in both the real world, and is also a window into the world you're drawing.&lt;br /&gt;
&lt;br /&gt;
You then see where that ray bounces off to, and see what kind of light it ends up hitting.  Why?  Because the light will follow the exact same path, except in reverse!  Straight into your eye/ onto your page!&lt;br /&gt;
&lt;br /&gt;
In order to tell whether something should be bright or not, for the specular light, you see if this line bounces straight into a light.  For a simple, and classic scene, consider a ball sitting in empty space, with the sun shining over your left shoulder.  There will be one single spot on the ball where you see the direct reflection of the sun.  One shiny point.  That's the specular reflection.&lt;br /&gt;
&lt;br /&gt;
Now for the diffuse reflections.  The level of brightness of a diffuse surface is proportional to how close that surface is to being at the right angle for reflection that I stated above.  If a light is shining at a surface at 15°, it will look brightest at the opposite 15°.  This is NOT when the surface is facing directly at the light - thinking that it is results in pillowshading.  Pillowshading is only accurate when you, and light striking the surface are in a straight line with the surface.  This is only true when you're using a camera flash in a pitch-dark room, or when you have the biggest source of light around.  It might be true if the sun were shining over your shoulders, except that your shadow would likely get in the way.&lt;br /&gt;
&lt;br /&gt;
The correct view is hard to intuit, and rather than flog it with words, I give you visual example.  This is a diffuse-surfaced sphere hanging in empty space, with a light source.  Notice something in this example - the brightest spot is NOT at the edge of the sphere.  It would be, if the light  were coming from the far side of the object, but the light is on the near side.&lt;br /&gt;
&lt;br /&gt;
http://gs295.sp.cs.cmu.edu/brennan/files/jetryl/tutorials/how-to-shade/shading-diffuse-sphere2.png&lt;br /&gt;
&lt;br /&gt;
For a second example, I give you a sphere with light coming, more or less, from behind and to the side of it.  Note how one entire hemisphere is completely dark.&lt;br /&gt;
&lt;br /&gt;
http://gs295.sp.cs.cmu.edu/brennan/files/jetryl/tutorials/how-to-shade/shading-diffuse-sphere1.png&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Ambient&amp;quot; light===&lt;br /&gt;
Because so much of the light in Diffuse reflections bounces in random directions, a lot of it does NOT come straight from a source.  There is enough bouncing off of other surfaces to illuminate things rather heavily.  Consider the moon.  You may have noticed that, with a crescent moon, you can see the dark side of the moon, as well as the light side.  The light illuminating that dark side is not coming directly from the sun, rather it's bouncing off of the earth, hitting the moon, and then bouncing back down to us.&lt;br /&gt;
&lt;br /&gt;
But don't, from that example, think of this as being a very weak effect - it's very powerful in more down-to-earth situations.  One of the best is an overcast day.  When you stand out in a field on such a day, all sides of you will have relatively equal illumination.  This is from the diffuse, &amp;quot;ambient&amp;quot; light bouncing off of the clouds, and thus coming at you from all directions.  Another good example is direct afternoon sunlight, mentioned below - in such a situation, you can still see the dark side of a person, and that's from the ambient light reflecting off of the ground, and then back to you.&lt;br /&gt;
&lt;br /&gt;
The amount of surfaces facing an object determine how much it will be illuminated by this.  Not the whole object, just whatever parts of it are facing other, illuminated, surfaces.  The more directly these surfaces are facing the object, the more illuminated it will be.&lt;br /&gt;
&lt;br /&gt;
===Directional light===&lt;br /&gt;
There is one more level of approximation necessary for doing a simple cell-shaded drawing, and that is directional light.  The number one thing that makes this necessary is the sun, or any powerful light sources.&lt;br /&gt;
&lt;br /&gt;
The sun lets out a torrent of light that hits an object, and then bounces off of it.  Because the sun is so far away, all of this light is roughly coming in at the same angle.&lt;br /&gt;
&lt;br /&gt;
One half of the object will be have tons of light hitting it - and its diffuse reflections (and specular reflections) will be very strong.  The other half of the object will have only the light that was bouncing off the ground and then back towards you to account for it, and thus will have very weak diffuse and specular light.&lt;br /&gt;
&lt;br /&gt;
The cut-off edge for this is determined by the rules of reflection I stated above.  If the normal angle, for a surface of the object, is facing more than 90° away from the light, it will be dark.&lt;br /&gt;
&lt;br /&gt;
===Conclusion===&lt;br /&gt;
I've only outlined a very complicated topic, here, but hopefully this can serve as a beginning for you.  Try to recognize these things in the world around you, as you see them, and incorporate that into your drawings.  Likewise, playing around with a 3d rendering program may serve to illustrate a number of the things I've only spoken about, here.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Create]]&lt;br /&gt;
* [[Art Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Art Tutorials]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=73096</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=73096"/>
		<updated>2024-06-08T02:35:12Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Flight to Freedom */ add FtF 5.6.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 2 stable releases (1.14 and 1.16) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14 or 1.16 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21 (may need an update now that the &amp;quot;B&amp;quot; branch has been reactivated)&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] (for BfW 1.18)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+ or 1.18+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.6.0 1.6.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=73095</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=73095"/>
		<updated>2024-06-08T02:33:29Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* News */ add 5.6.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 1/27/24 (although before that, there was a long stretch where it hadn't been updated since 2/22/14, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest version is [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&amp;lt;br/&amp;gt;&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/7/24&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.6.0 5.6.0] released, for Wesnoth 1.18+.&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=NotSoEasyCoding&amp;diff=73094</id>
		<title>NotSoEasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=NotSoEasyCoding&amp;diff=73094"/>
		<updated>2024-06-06T20:08:09Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Gold graph */ replace GNA link with Wayback Machine backup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists projects which are considered a good idea by the developers, but which have nobody working on them so far. The tasks here are significantly more difficult than the ones in the similar [[EasyCoding]] page. If you think you've got the required skill for one of the tasks listed here, go on, implement it, and you've got a high chance that it'll be accepted. The remaining barrier will only be that it's done well. :-)&lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC or Discord. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you spend too long at working on a feature we'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us...). We sometimes forget to update this page so it is recommended that, before you start to work on a task, that you ask in irc/Discord whether its still considered a good idea.&lt;br /&gt;
&lt;br /&gt;
If you are part of the Wesnoth dev team you can also add new entries to the list, a new entry must contain at least&lt;br /&gt;
&lt;br /&gt;
1) A description of the problem.&lt;br /&gt;
2) A motivation why or in which situations this is important.&lt;br /&gt;
3) A link to a corresponding ticket on our bugtracker for discussion, if there is no ticket yet, then make one.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Game engine ==&lt;br /&gt;
&lt;br /&gt;
=== [[OpenGL port]] ===&lt;br /&gt;
&lt;br /&gt;
While software rendering is all good and nice, Wesnoth's approach does not scale well as display resolutions increase and the need for supporting high DPI configurations is factored in. One can easily see that our zoom functionality is clunky and inefficient. Having support for OpenGL and shaders would also enable us to implement fancier graphical gimmicks such as particle effects and atmospheric lighting. The downside of adding OpenGL to the mix is that we'd need people with a specific skillset to help us maintain the graphics engine in the long term, as hardware and driver-specific quirks are inevitable. Some users are also concerned about changing Wesnoth's hardware requirements so that they would be unable to play using old or unsupported hardware/OS configurations.&lt;br /&gt;
&lt;br /&gt;
For hardware rendering to be effective, in particular, Wesnoth would necessitate a complete rewrite of the graphics rendering code (the display and game_display classes), the image cache manager (used to abstract the process of loading images from disk and applying image path functions), and potentially GUI2's canvas code. All three would have to limit the amount of textures they allocate to the absolute minimum, using larger textures instead. For example, the image cache could be reimplemented to load images from an internal spritesheet generated during the game loading process. (WML/Lua support for spritesheets would be nice would defining an API for it would only distract from the actual task at hand.)&lt;br /&gt;
&lt;br /&gt;
The greatest difficulty in handling this task probably lies in writing a new optimized rendering engine and updating all code that relies on the old display/game_display API and semantics accordingly. The GUI2 framework code is presently unmaintained and it would take some time for somebody to study and change the current implementation. Finally, as we don't have a graphics engine maintainer at this time, this task involves an implicit long-term commitment to the project that extends beyond whichever Wesnoth series that will see this project completed.&lt;br /&gt;
&lt;br /&gt;
One of the many issues related to switching from software rendering to hardware rendering is Wesnoth's [[ImagePathFunctions]] mini-language. There is already a proof of concept [https://github.com/CelticMinstrel/wesnoth-ipf here] that converts most IPFs to OpenGL shader code, but quite a bit more work would need to be done to make something usable out of it. In particular, the ability to compile arbitrary [[Wesnoth Formula Language]] code into shaders would be needed, since some IPFs embed the language.&lt;br /&gt;
&lt;br /&gt;
=== Improve WML error reporting ===&lt;br /&gt;
&lt;br /&gt;
There are many programming bugs that give very unclear or cryptic error messages when using WML. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;When calling a macro with the wrong number of arguments, Wesnoth tells the number it expected, and the number it got, and at which line number it was instantiated. However, it would be helpful if it would also tell the line number of the definition of the macro. This might be helpful if someone is redefining macros.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For places where a standard unit filter is expected, if one is not found, the game should point out a problem. For places where such a filter is expected but [filter] child should not appear, if one does it should report an error and a line number. Many users have a hard time with this kind of thing.&lt;br /&gt;
&lt;br /&gt;
* When doing scenario transitions in a campaign, if the side definitions don't match up exactly the game tends to give unintelligible error messages. For instance, if one is transitioning and there is an AI side which does not have a leader (but it has a starting location in the map) it must have &amp;quot;no_leader = yes&amp;quot; in its [side] tag, or else when the team_builder objects enter stage two, the game will try to create a unit with an empty type, and the constructor of class unit will fail giving the error message &amp;quot;game::game_error tried to create unit with empty type&amp;quot;. This really needs to be much better. For instance, giving a line number of a problem, or suggesting that no_leader should be used. (Note that, it is often possible to debug problems like this by turning on --log-debug=team_construction at commandline but I doubt that there are any users that know about this, you would only learn from reading the C++... without such debug info, fixing things like this can literally take hours.) For that matter it's some question why the team_builder doesn't just stop trying to build a unit when it sees it doesn't have enough info...&lt;br /&gt;
&lt;br /&gt;
* Recursive macros break the game, and not by stack overflow but by exhausting the heap (which usually takes forever on modern OSes and results in memory thrashing &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; resource starvation). It would be nice if we could catch this and report an error.&lt;br /&gt;
&lt;br /&gt;
Many WML users are students or beginners to programming, so any improvements to WML error reporting are a big help for their learning process -- many veterans would appreciate the extra help as well. In part we need fixits here and there, but more broadly we need a smarter system that can figure out what's really wrong when things go wrong, and give helpful suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Don't store all events in savefiles ===&lt;br /&gt;
&lt;br /&gt;
Currently all events in a scenario are stored twice in each savefile (in [snapshot] and it [replay_start]), specially on wml-heavy umc content this can make savefiles quite big, The proposed solution is that events are not stored in savefiles when they are the same as in the scenario/era/modification file (e.g. not dynamically added with actionwml).&lt;br /&gt;
In detail the savefile should for all events that have an id and are not generated dynamically ([event] actionwml), store dummy events like &lt;br /&gt;
 [event]&lt;br /&gt;
  id=event_id&lt;br /&gt;
  is_unchanged=yes&lt;br /&gt;
 [/event]&lt;br /&gt;
in the savefiles (instead of full events), where the event is then read from the scenario/era/modification tag when the scenario is loaded. This should only apply to campaigns/modifications/mp maps/eras that require download (which is usually the case for campaigns but not for mp maps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/wesnoth/wesnoth/issues/1512&lt;br /&gt;
&lt;br /&gt;
== Multiplayer/replay features ==&lt;br /&gt;
&lt;br /&gt;
=== Gold graph ===&lt;br /&gt;
&lt;br /&gt;
Make a graph feature, presumably in a dialog, that helps depict the history of a Wesnoth match for the benefit of spectators of a live game or replay. For example it could display army value, army + bank value, number of villages tagged, luck swings... This would also be particularly helpful for AI tweaking development, by helping coders identify the AI's weaknesses and strengths in the context of a particular scenario.&lt;br /&gt;
&lt;br /&gt;
A possible nice feature for this purpose would be to allow the user to click on the graph at key points which would trigger the &amp;quot;back to turn&amp;quot; mechanism to jump back in the replay, or automatically play the replay forwards from the beginning to that point... etc.&lt;br /&gt;
&lt;br /&gt;
Related email on dev-talk: http://web.archive.org/web/20170505024430/https://mail.gna.org/public/wesnoth-dev/2014-02/msg00089.html&lt;br /&gt;
&lt;br /&gt;
=== Automatically link up to wesnothd server on a local network ===&lt;br /&gt;
&lt;br /&gt;
The feature request was to use ZeroConf technology, if available, to publish info of a running wesnothd instance to other machines on a local network. Then when they are searching to connect to an unofficial server, they won't have to learn the IP address.&lt;br /&gt;
&lt;br /&gt;
The extra code should be guarded with preprocessor flags so that ZeroConf does not become a mandatory build dependency of Wesnoth.&lt;br /&gt;
&lt;br /&gt;
https://github.com/wesnoth/wesnoth/issues/1162&lt;br /&gt;
&lt;br /&gt;
=== Stock MP chat messages for language-independent communication ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has seen a large acceptance by international communities, and many players don't speak English. It would be nice we could have a set of messages that could be chatted, but which will be translated by our translators and displayed always in the current locale on each client, to make it easier to communicate in mp games / on the mp server.&lt;br /&gt;
&lt;br /&gt;
The easy part is adding the messages. They would ideally be stored in a WML file in the core data dir so they can be easily modified and translated like all other mainline WML. The hard part is devising the interaction mechanism so that a player can easily make use of these stock messages in the MP lobby or in game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GUI2 framework ==&lt;br /&gt;
&lt;br /&gt;
As of 1.13.1+dev, GUI2's core and framework (including widgets and their APIs) are completely unmaintained. A prospective maintainer would have to be able to understand pretty advanced C++ making abundant use of template-based abstractions (most notably, the event handling code is almost completely implemented this way), multiple inheritance, and polymorphism. There is also some missing functionality (such as combo boxes and modeless dialogs) that the author did not get to implement, as well as work-in-progress functionality (new listbox and tooltip implementations, not enabled by default).&lt;br /&gt;
&lt;br /&gt;
=== GUI2 themable in-game UI ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;themable&amp;quot; in-game UI refers to the gameplay UI including the sidebar, menu/status bar, and map view. Most of it is not implemented using proper GUI1 widgets at all, except for the various interactive buttons, menus (which are floating GUI1 listboxes), and the command and chat input boxes (floating GUI1 textboxes).&lt;br /&gt;
&lt;br /&gt;
Moving the theme UI to GUI2 would probably require finishing up theme support in GUI2 (which is largely incomplete), and may benefit from a rendering engine redesign as is also required for porting the game to SDL 2; in particular so that the GUI aspects are more clearly separated from the game board rendering aspect.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This task is here solely for the sake of completeness, and only somebody very well versed in the intricacies of Wesnoth's game rendering code and GUI2 should '''ever''' try to take it up. (And even then, I would not want to be anywhere near that person when they inevitably break down and fling one or more tables around upon realizing the sheer complexity of the task. -- Iris)&lt;br /&gt;
&lt;br /&gt;
== Add-ons server and client ==&lt;br /&gt;
&lt;br /&gt;
=== Passphrase hashing ===&lt;br /&gt;
&lt;br /&gt;
The add-ons server ([[campaignd]]) uses a very dumb authentication scheme for uploading add-ons where an author sets a passphrase (or gets a random passphrase assigned by the game) the first time they upload to the server, and subsequent uploads of the same add-on are only allowed if the passphrase matches. The passphrase is stored in clear text form both client and server-side, which has [http://forums.wesnoth.org/viewtopic.php?f=62&amp;amp;t=42663 various implications].&lt;br /&gt;
&lt;br /&gt;
Ideally, the server would store all passphrases in a hashed form.&lt;br /&gt;
&lt;br /&gt;
=== Port redirection ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth's MP server (wesnothd) uses a single port (15000) for servicing most requests and redirects clients to different ports according to the game client's version number. This allows the server administrators to reassign ports freely without having to modify the game client.&lt;br /&gt;
&lt;br /&gt;
The add-ons server (campaignd) and client instead have a hardcoded default port number for a Wesnoth version series. For example, 1.12.x is hardcoded to default to 15006. This becomes a maintainability issue as add-on servers get decommissioned and their port numbers can't be reused for fear of misdirecting obsolete client versions to the wrong instance with incompatible add-ons.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer server and client ==&lt;br /&gt;
&lt;br /&gt;
=== Improve server WML processing ===&lt;br /&gt;
&lt;br /&gt;
The server uses its own custom WML implementation separate from the main engine's to store and process WML objects for games -- see [[WesnothdDesign#simple_wml]]. This is intended to improve performance and reduce wesnothd's memory footprint with large numbers of games and complex scenarios. However, the simple_wml code sometimes messes up WML attribute translatability, resulting in MP scenarios/campaigns being untranslated for non-hosts in networked MP (https://github.com/wesnoth/wesnoth/issues/1420). Fixing this is not easy due to the aforementioned performance requirements.&lt;br /&gt;
&lt;br /&gt;
== WML-related features ==&lt;br /&gt;
=== Game Information ===&lt;br /&gt;
&lt;br /&gt;
* [query_location] - queries a location from the user&lt;br /&gt;
** variable&lt;br /&gt;
** [filter_location]&lt;br /&gt;
''Regarding [query_location]: probably a better name would be choose_location. This is used when a wml event is running and needs to get a target location hex from the user. For example, you right click on a catapult unit and choose the menu item &amp;quot;fire Catapult.&amp;quot; Now a [message] says to click on any target within 5 hexes. Now [choose_location] is encountered and the mouse cursor changes to a target sign (possibly customizable). If the user's mouse drifts outside of the allowed locations it changes to a cancel icon. If the operation is cancelled then the variable is cleared and no location stored. --Sapient''&lt;br /&gt;
&lt;br /&gt;
''This can be implemented in lua by using wesnoth.game_events.on_mouse_action and wesnoth.syncronize_choice''&lt;br /&gt;
&lt;br /&gt;
https://github.com/wesnoth/wesnoth/issues/2325&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=NotSoEasyCoding&amp;diff=73093</id>
		<title>NotSoEasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=NotSoEasyCoding&amp;diff=73093"/>
		<updated>2024-06-06T20:03:08Z</updated>

		<summary type="html">&lt;p&gt;Egallager: Copyedit a bit; link to corresponding EasyCoding page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists projects which are considered a good idea by the developers, but which have nobody working on them so far. The tasks here are significantly more difficult than the ones in the similar [[EasyCoding]] page. If you think you've got the required skill for one of the tasks listed here, go on, implement it, and you've got a high chance that it'll be accepted. The remaining barrier will only be that it's done well. :-)&lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC or Discord. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you spend too long at working on a feature we'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us...). We sometimes forget to update this page so it is recommended that, before you start to work on a task, that you ask in irc/Discord whether its still considered a good idea.&lt;br /&gt;
&lt;br /&gt;
If you are part of the Wesnoth dev team you can also add new entries to the list, a new entry must contain at least&lt;br /&gt;
&lt;br /&gt;
1) A description of the problem.&lt;br /&gt;
2) A motivation why or in which situations this is important.&lt;br /&gt;
3) A link to a corresponding ticket on our bugtracker for discussion, if there is no ticket yet, then make one.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Game engine ==&lt;br /&gt;
&lt;br /&gt;
=== [[OpenGL port]] ===&lt;br /&gt;
&lt;br /&gt;
While software rendering is all good and nice, Wesnoth's approach does not scale well as display resolutions increase and the need for supporting high DPI configurations is factored in. One can easily see that our zoom functionality is clunky and inefficient. Having support for OpenGL and shaders would also enable us to implement fancier graphical gimmicks such as particle effects and atmospheric lighting. The downside of adding OpenGL to the mix is that we'd need people with a specific skillset to help us maintain the graphics engine in the long term, as hardware and driver-specific quirks are inevitable. Some users are also concerned about changing Wesnoth's hardware requirements so that they would be unable to play using old or unsupported hardware/OS configurations.&lt;br /&gt;
&lt;br /&gt;
For hardware rendering to be effective, in particular, Wesnoth would necessitate a complete rewrite of the graphics rendering code (the display and game_display classes), the image cache manager (used to abstract the process of loading images from disk and applying image path functions), and potentially GUI2's canvas code. All three would have to limit the amount of textures they allocate to the absolute minimum, using larger textures instead. For example, the image cache could be reimplemented to load images from an internal spritesheet generated during the game loading process. (WML/Lua support for spritesheets would be nice would defining an API for it would only distract from the actual task at hand.)&lt;br /&gt;
&lt;br /&gt;
The greatest difficulty in handling this task probably lies in writing a new optimized rendering engine and updating all code that relies on the old display/game_display API and semantics accordingly. The GUI2 framework code is presently unmaintained and it would take some time for somebody to study and change the current implementation. Finally, as we don't have a graphics engine maintainer at this time, this task involves an implicit long-term commitment to the project that extends beyond whichever Wesnoth series that will see this project completed.&lt;br /&gt;
&lt;br /&gt;
One of the many issues related to switching from software rendering to hardware rendering is Wesnoth's [[ImagePathFunctions]] mini-language. There is already a proof of concept [https://github.com/CelticMinstrel/wesnoth-ipf here] that converts most IPFs to OpenGL shader code, but quite a bit more work would need to be done to make something usable out of it. In particular, the ability to compile arbitrary [[Wesnoth Formula Language]] code into shaders would be needed, since some IPFs embed the language.&lt;br /&gt;
&lt;br /&gt;
=== Improve WML error reporting ===&lt;br /&gt;
&lt;br /&gt;
There are many programming bugs that give very unclear or cryptic error messages when using WML. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;When calling a macro with the wrong number of arguments, Wesnoth tells the number it expected, and the number it got, and at which line number it was instantiated. However, it would be helpful if it would also tell the line number of the definition of the macro. This might be helpful if someone is redefining macros.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For places where a standard unit filter is expected, if one is not found, the game should point out a problem. For places where such a filter is expected but [filter] child should not appear, if one does it should report an error and a line number. Many users have a hard time with this kind of thing.&lt;br /&gt;
&lt;br /&gt;
* When doing scenario transitions in a campaign, if the side definitions don't match up exactly the game tends to give unintelligible error messages. For instance, if one is transitioning and there is an AI side which does not have a leader (but it has a starting location in the map) it must have &amp;quot;no_leader = yes&amp;quot; in its [side] tag, or else when the team_builder objects enter stage two, the game will try to create a unit with an empty type, and the constructor of class unit will fail giving the error message &amp;quot;game::game_error tried to create unit with empty type&amp;quot;. This really needs to be much better. For instance, giving a line number of a problem, or suggesting that no_leader should be used. (Note that, it is often possible to debug problems like this by turning on --log-debug=team_construction at commandline but I doubt that there are any users that know about this, you would only learn from reading the C++... without such debug info, fixing things like this can literally take hours.) For that matter it's some question why the team_builder doesn't just stop trying to build a unit when it sees it doesn't have enough info...&lt;br /&gt;
&lt;br /&gt;
* Recursive macros break the game, and not by stack overflow but by exhausting the heap (which usually takes forever on modern OSes and results in memory thrashing &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; resource starvation). It would be nice if we could catch this and report an error.&lt;br /&gt;
&lt;br /&gt;
Many WML users are students or beginners to programming, so any improvements to WML error reporting are a big help for their learning process -- many veterans would appreciate the extra help as well. In part we need fixits here and there, but more broadly we need a smarter system that can figure out what's really wrong when things go wrong, and give helpful suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Don't store all events in savefiles ===&lt;br /&gt;
&lt;br /&gt;
Currently all events in a scenario are stored twice in each savefile (in [snapshot] and it [replay_start]), specially on wml-heavy umc content this can make savefiles quite big, The proposed solution is that events are not stored in savefiles when they are the same as in the scenario/era/modification file (e.g. not dynamically added with actionwml).&lt;br /&gt;
In detail the savefile should for all events that have an id and are not generated dynamically ([event] actionwml), store dummy events like &lt;br /&gt;
 [event]&lt;br /&gt;
  id=event_id&lt;br /&gt;
  is_unchanged=yes&lt;br /&gt;
 [/event]&lt;br /&gt;
in the savefiles (instead of full events), where the event is then read from the scenario/era/modification tag when the scenario is loaded. This should only apply to campaigns/modifications/mp maps/eras that require download (which is usually the case for campaigns but not for mp maps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/wesnoth/wesnoth/issues/1512&lt;br /&gt;
&lt;br /&gt;
== Multiplayer/replay features ==&lt;br /&gt;
&lt;br /&gt;
=== Gold graph ===&lt;br /&gt;
&lt;br /&gt;
Make a graph feature, presumably in a dialog, that helps depict the history of a Wesnoth match for the benefit of spectators of a live game or replay. For example it could display army value, army + bank value, number of villages tagged, luck swings... This would also be particularly helpful for AI tweaking development, by helping coders identify the AI's weaknesses and strengths in the context of a particular scenario.&lt;br /&gt;
&lt;br /&gt;
A possible nice feature for this purpose would be to allow the user to click on the graph at key points which would trigger the &amp;quot;back to turn&amp;quot; mechanism to jump back in the replay, or automatically play the replay forwards from the beginning to that point... etc.&lt;br /&gt;
&lt;br /&gt;
Related email on dev-talk: https://mail.gna.org/public/wesnoth-dev/2014-02/msg00089.html&lt;br /&gt;
&lt;br /&gt;
=== Automatically link up to wesnothd server on a local network ===&lt;br /&gt;
&lt;br /&gt;
The feature request was to use ZeroConf technology, if available, to publish info of a running wesnothd instance to other machines on a local network. Then when they are searching to connect to an unofficial server, they won't have to learn the IP address.&lt;br /&gt;
&lt;br /&gt;
The extra code should be guarded with preprocessor flags so that ZeroConf does not become a mandatory build dependency of Wesnoth.&lt;br /&gt;
&lt;br /&gt;
https://github.com/wesnoth/wesnoth/issues/1162&lt;br /&gt;
&lt;br /&gt;
=== Stock MP chat messages for language-independent communication ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has seen a large acceptance by international communities, and many players don't speak English. It would be nice we could have a set of messages that could be chatted, but which will be translated by our translators and displayed always in the current locale on each client, to make it easier to communicate in mp games / on the mp server.&lt;br /&gt;
&lt;br /&gt;
The easy part is adding the messages. They would ideally be stored in a WML file in the core data dir so they can be easily modified and translated like all other mainline WML. The hard part is devising the interaction mechanism so that a player can easily make use of these stock messages in the MP lobby or in game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GUI2 framework ==&lt;br /&gt;
&lt;br /&gt;
As of 1.13.1+dev, GUI2's core and framework (including widgets and their APIs) are completely unmaintained. A prospective maintainer would have to be able to understand pretty advanced C++ making abundant use of template-based abstractions (most notably, the event handling code is almost completely implemented this way), multiple inheritance, and polymorphism. There is also some missing functionality (such as combo boxes and modeless dialogs) that the author did not get to implement, as well as work-in-progress functionality (new listbox and tooltip implementations, not enabled by default).&lt;br /&gt;
&lt;br /&gt;
=== GUI2 themable in-game UI ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;themable&amp;quot; in-game UI refers to the gameplay UI including the sidebar, menu/status bar, and map view. Most of it is not implemented using proper GUI1 widgets at all, except for the various interactive buttons, menus (which are floating GUI1 listboxes), and the command and chat input boxes (floating GUI1 textboxes).&lt;br /&gt;
&lt;br /&gt;
Moving the theme UI to GUI2 would probably require finishing up theme support in GUI2 (which is largely incomplete), and may benefit from a rendering engine redesign as is also required for porting the game to SDL 2; in particular so that the GUI aspects are more clearly separated from the game board rendering aspect.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This task is here solely for the sake of completeness, and only somebody very well versed in the intricacies of Wesnoth's game rendering code and GUI2 should '''ever''' try to take it up. (And even then, I would not want to be anywhere near that person when they inevitably break down and fling one or more tables around upon realizing the sheer complexity of the task. -- Iris)&lt;br /&gt;
&lt;br /&gt;
== Add-ons server and client ==&lt;br /&gt;
&lt;br /&gt;
=== Passphrase hashing ===&lt;br /&gt;
&lt;br /&gt;
The add-ons server ([[campaignd]]) uses a very dumb authentication scheme for uploading add-ons where an author sets a passphrase (or gets a random passphrase assigned by the game) the first time they upload to the server, and subsequent uploads of the same add-on are only allowed if the passphrase matches. The passphrase is stored in clear text form both client and server-side, which has [http://forums.wesnoth.org/viewtopic.php?f=62&amp;amp;t=42663 various implications].&lt;br /&gt;
&lt;br /&gt;
Ideally, the server would store all passphrases in a hashed form.&lt;br /&gt;
&lt;br /&gt;
=== Port redirection ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth's MP server (wesnothd) uses a single port (15000) for servicing most requests and redirects clients to different ports according to the game client's version number. This allows the server administrators to reassign ports freely without having to modify the game client.&lt;br /&gt;
&lt;br /&gt;
The add-ons server (campaignd) and client instead have a hardcoded default port number for a Wesnoth version series. For example, 1.12.x is hardcoded to default to 15006. This becomes a maintainability issue as add-on servers get decommissioned and their port numbers can't be reused for fear of misdirecting obsolete client versions to the wrong instance with incompatible add-ons.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer server and client ==&lt;br /&gt;
&lt;br /&gt;
=== Improve server WML processing ===&lt;br /&gt;
&lt;br /&gt;
The server uses its own custom WML implementation separate from the main engine's to store and process WML objects for games -- see [[WesnothdDesign#simple_wml]]. This is intended to improve performance and reduce wesnothd's memory footprint with large numbers of games and complex scenarios. However, the simple_wml code sometimes messes up WML attribute translatability, resulting in MP scenarios/campaigns being untranslated for non-hosts in networked MP (https://github.com/wesnoth/wesnoth/issues/1420). Fixing this is not easy due to the aforementioned performance requirements.&lt;br /&gt;
&lt;br /&gt;
== WML-related features ==&lt;br /&gt;
=== Game Information ===&lt;br /&gt;
&lt;br /&gt;
* [query_location] - queries a location from the user&lt;br /&gt;
** variable&lt;br /&gt;
** [filter_location]&lt;br /&gt;
''Regarding [query_location]: probably a better name would be choose_location. This is used when a wml event is running and needs to get a target location hex from the user. For example, you right click on a catapult unit and choose the menu item &amp;quot;fire Catapult.&amp;quot; Now a [message] says to click on any target within 5 hexes. Now [choose_location] is encountered and the mouse cursor changes to a target sign (possibly customizable). If the user's mouse drifts outside of the allowed locations it changes to a cancel icon. If the operation is cancelled then the variable is cleared and no location stored. --Sapient''&lt;br /&gt;
&lt;br /&gt;
''This can be implemented in lua by using wesnoth.game_events.on_mouse_action and wesnoth.syncronize_choice''&lt;br /&gt;
&lt;br /&gt;
https://github.com/wesnoth/wesnoth/issues/2325&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=72664</id>
		<title>Template:WML Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=72664"/>
		<updated>2024-04-08T01:28:05Z</updated>

		<summary type="html">&lt;p&gt;Egallager: link to ReferenceWML&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;reference-sidebar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span class=&amp;quot;editlink&amp;quot;&amp;gt;&amp;amp;#91;[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit]&amp;amp;#93;&amp;lt;/span&amp;gt;'''WML Tags'''&lt;br /&gt;
|-&lt;br /&gt;
|''A:'' &lt;br /&gt;
[[AbilitiesWML#The .5Babilities.5D tag|abilities]],&lt;br /&gt;
[[CreditsWML#.5Babout.5D|about]],&lt;br /&gt;
[[AchievementsWML#.5Bachievement.5D|achievement]],&lt;br /&gt;
[[AchievementsWML#.5Bachievement_group.5D|achievement_group]],&lt;br /&gt;
[[Lua_AI_Legacy_Methods_Howto#Behavior_.28Sticky.29_Candidate_Actions|add_ai_behavior]],&lt;br /&gt;
[[AdvancedPreferenceWML|advanced_preference]],&lt;br /&gt;
[[UnitTypeWML#advancefrom|advancefrom]],&lt;br /&gt;
[[UnitTypeWML#After_max_level_advancement_.28AMLA.29|advancement]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|advances]],&lt;br /&gt;
[[AbilitiesWML#affect_adjacent|affect_adjacent]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Top-level_Elements|ai]],&lt;br /&gt;
[[StandardSideFilter#allied_with|allied_with]], &lt;br /&gt;
[[DirectActionsWML#.5Ballow_end_turn.5D|allow_end_turn]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_extra_recruit.5D|allow_extra_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_recruit.5D|allow_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_undo.5D|allow_undo]],&lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|and]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|animate]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|animate_unit]],&lt;br /&gt;
[[AnimationWML#The .5Banimation.5D tag|animation]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|aspect]],&lt;br /&gt;
attack ([[ReplayWML#attack|replay]], [[UnitTypeWML#Attacks|weapon]]),&lt;br /&gt;
[[AnimationWML#short-attack|attack_anim]],&lt;br /&gt;
attacks ([[AbilitiesWML#The_.5Bspecials.5D_tag|special]], [[StatisticalScenarioWML#The_.5Bteam.5D_tag|stats]]),&lt;br /&gt;
[[AiWML#avoid|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[UnitTypeWML#base_unit|base_unit]], &lt;br /&gt;
[[IntroWML#.5Bbackground_layer.5D|background_layer]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|berserk]], &lt;br /&gt;
[[BinaryPathWML|binary_path]],&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|break]],&lt;br /&gt;
[[EditorWML#The_.5Bbrush.5D_tag|brush]];&lt;br /&gt;
|-&lt;br /&gt;
|''C:'' &lt;br /&gt;
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]],&lt;br /&gt;
[[DirectActionsWML#.5Bcancel_action.5D|cancel_action]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bcandidate_action.5D_Tag|candidate_action]], &lt;br /&gt;
[[DirectActionsWML#.5Bcapture_village.5D|capture_village]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bswitch.5D|case]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|chance_to_hit]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bchange_theme.5D|change_theme]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bchat.5D|chat]],&lt;br /&gt;
[[OptionWML#checkbox|checkbox]],&lt;br /&gt;
[[OptionWML#choice|choice]],&lt;br /&gt;
[[ReplayWML#choose|choose]],&lt;br /&gt;
[[PersistenceWML#WML Syntax|clear_global_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bclear_menu_item.5D|clear_menu_item]],&lt;br /&gt;
[[InternalActionsWML#.5Bclear_variable.5D|clear_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bcolor_adjust.5D|color_adjust]],&lt;br /&gt;
[[GameConfigWML#Color_Palettes|color_palette]],&lt;br /&gt;
[[GameConfigWML#Color_Palettes|color_range]],&lt;br /&gt;
command&amp;amp;nbsp;([[ConditionalActionsWML#.5Bcommand.5D|action]], [[ReplayWML|replay]]),&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|continue]],&lt;br /&gt;
[[CreditsWML#.5Bcredits_group.5D|credits_group]],&lt;br /&gt;
[[AiWML#The_.5Bgoal.5D_Tag|criteria]];&lt;br /&gt;
|-&lt;br /&gt;
|''D:'' &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|damage]],&lt;br /&gt;
[[AnimationWML#short-death|death]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|deaths]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|default]], &lt;br /&gt;
[[AnimationWML#short-defend|defend]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|defends]],&lt;br /&gt;
[[UnitsWML#defense|defense]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bdelay.5D|delay]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bdeprecated_message.5D|deprecated_message]],&lt;br /&gt;
[[ReplayWML#attack|destination]],&lt;br /&gt;
[[CampaignWML#difficulty|difficulty]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|disable]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_end_turn.5D|disallow_end_turn]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_extra_recruit.5D|disallow_extra_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_recruit.5D|disallow_recruit]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bwhile.5D|do]], &lt;br /&gt;
[[DirectActionsWML#.5Bdo_command.5D|do_command]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|drains]], &lt;br /&gt;
[[AnimationWML#short-draw_weapon|draw_weapon_anim]];&lt;br /&gt;
|-&lt;br /&gt;
|''E:'' &lt;br /&gt;
[[EditorWML#The_.5Beditor_group.5D_tag|editor_group]],&lt;br /&gt;
[[EditorWML#The_.5Beditor_music.5D_tag|editor_music]],&lt;br /&gt;
[[EditorWML#The_.5Beditor_times.5D_tag|editor_times]],&lt;br /&gt;
[[EffectWML|effect]],&lt;br /&gt;
else&amp;amp;nbsp;([[ConditionalActionsWML#.5Bif.5D|action]], [[AnimationWML#Conditional Branches|animation]]), [[ConditionalActionsWML#.5Bif.5D|elseif]],&lt;br /&gt;
[[DirectActionsWML#.5Bendlevel.5D|endlevel]],&lt;br /&gt;
end_turn&amp;amp;nbsp;([[DirectActionsWML#.5Bend_turn.5D|action]], [[ReplayWML#end_turn|replay]]),&lt;br /&gt;
[[StandardSideFilter#enemy_of|enemy_of]], &lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Engines|engine]], &lt;br /&gt;
entry&amp;amp;nbsp;([[CreditsWML#.5Bentry.5D|credits]], [[OptionWML#entry|options]]),&lt;br /&gt;
[[EraWML|era]],&lt;br /&gt;
[[EventWML|event]],&lt;br /&gt;
[[StandardUnitFilter#filter_ability|experimental_filter_ability]],&lt;br /&gt;
[[StandardUnitFilter#filter_ability_active|experimental_filter_ability_active]],&lt;br /&gt;
[[AbilitiesWML#filter_specials|experimental_filter_specials]],&lt;br /&gt;
[[AnimationWML#short-extra|extra_anim]];&lt;br /&gt;
|-&lt;br /&gt;
|''F:''&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|facet]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|facing]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_units_fake.5D|fake_unit]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bfalse.5D|false]],&lt;br /&gt;
[[PblWML#.5Bfeedback.5D|feedback]],&lt;br /&gt;
[[UnitTypeWML#variation|female]], &lt;br /&gt;
filter ([[FilterWML|concept]], [[EventWML#.5Bfilter.5D|event]]),&lt;br /&gt;
[[StandardUnitFilter#filter_adjacent|filter_adjacent]], &lt;br /&gt;
[[StandardLocationFilter#filter_adjacent_location|filter_adjacent_location]], &lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_attack]],&lt;br /&gt;
[[AbilitiesWML#filter_attacker|filter_attacker]], &lt;br /&gt;
[[AbilitiesWML#filter_base_value|filter_base_value]], &lt;br /&gt;
[[EventWML#.5Bfilter_condition.5D|filter_condition]],&lt;br /&gt;
[[AbilitiesWML#filter_defender|filter_defender]], &lt;br /&gt;
[[AiWML#Filtering_Combat_with_the_attacks_Aspect|filter_enemy]],&lt;br /&gt;
[[StandardLocationFilter|filter_location]],&lt;br /&gt;
[[AbilitiesWML#filter_opponent|filter_opponent]], &lt;br /&gt;
[[AiWML#Filtering_Combat_with_the_attacks_Aspect|filter_own]],&lt;br /&gt;
[[StandardLocationFilter#filter_owner|filter_owner]], &lt;br /&gt;
[[StandardLocationFilter#filter_radius|filter_radius]], &lt;br /&gt;
[[SingleUnitWML#filter_recall|filter_recall]], &lt;br /&gt;
[[StandardUnitFilter|filter_second]],&lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_second_attack]],&lt;br /&gt;
[[AbilitiesWML#filter_self|filter_self]], &lt;br /&gt;
[[StandardSideFilter|filter_side]],&lt;br /&gt;
[[AbilitiesWML#filter_student|filter_student]], &lt;br /&gt;
[[FilterWML#Filtering_Vision|filter_vision]],&lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_weapon]], &lt;br /&gt;
[[FilterWML#Filtering_on_WML_data|filter_wml]],&lt;br /&gt;
[[InternalActionsWML#.5Bfind_path.5D|find_path]],&lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|fire_event]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|firststrike]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bfloating_text.5D|floating_text]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bfound_item.5D|found_item]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bfor.5D|for]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bforeach.5D|foreach]],&lt;br /&gt;
[[AnimationWML#The .5Bframe.5D tag|frame]];&lt;br /&gt;
|-&lt;br /&gt;
|''G:'' &lt;br /&gt;
[[GameConfigWML|game_config]],&lt;br /&gt;
[[PersistenceWML#WML Syntax|get_global_variable]],&lt;br /&gt;
[[AiWML#The_.5Bgoal.5D_Tag|goal]],&lt;br /&gt;
[[DirectActionsWML#.5Bgold.5D|gold]],&lt;br /&gt;
[[InterfaceActionsWML#objectives-gold_carryover|gold_carryover]];&lt;br /&gt;
|-&lt;br /&gt;
|''H:'' &lt;br /&gt;
[[DirectActionsWML#.5Bharm_unit.5D|harm_unit]],&lt;br /&gt;
[[StandardSideFilter#has_ally|has_ally]], &lt;br /&gt;
[[StandardUnitFilter#has_attack|has_attack]],&lt;br /&gt;
[[StandardSideFilter#has_unit|has_unit]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bhas_achievement.5D|has_achievement]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bhave_location.5D|have_location]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bhave_unit.5D|have_unit]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|heal_on_hit]], &lt;br /&gt;
[[DirectActionsWML#.5Bheal_unit.5D|heal_unit]],&lt;br /&gt;
[[AnimationWML#short-healed|healed_anim]], &lt;br /&gt;
[[AnimationWML#short-healing|healing_anim]], &lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|heals]], &lt;br /&gt;
[[UnitsWML#.5Bhide_help.5D|hide_help]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bhide_unit.5D|hide_unit]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|hides]];&lt;br /&gt;
|-&lt;br /&gt;
|''I:'' &lt;br /&gt;
[[AnimationWML#short-idle|idle_anim]], &lt;br /&gt;
if&amp;amp;nbsp;([[ConditionalActionsWML#.5Bif.5D|action]], [[AnimationWML#Conditional Branches|animation]], [[IntroWML|intro]]),&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|illuminates]], &lt;br /&gt;
image&amp;amp;nbsp;([[IntroWML#.5Bimage.5D|intro]], [[TerrainGraphicsWML#The_.5Bimage.5D_subtag|terrain]]),&lt;br /&gt;
[[ReplayWML#init_side|init_side]],&lt;br /&gt;
[[VariablesWML#.5Binsert_tag.5D|insert_tag]],&lt;br /&gt;
[[InterfaceActionsWML#.5Binspect.5D|inspect]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bitem.5D|item]],&lt;br /&gt;
[[EditorWML#The_.5Bitem_group.5D_tag|item_group]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[UnitsWML#jamming_costs|jamming_costs]],&lt;br /&gt;
[[InternalActionsWML#join|join]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML#.5Bkill.5D|kill]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[InterfaceActionsWML#.5Blabel.5D|label]],&lt;br /&gt;
[[LanguageWML|language]],&lt;br /&gt;
[[SideWML#leader|leader]],&lt;br /&gt;
[[AiWML#leader_goal|leader_goal]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|leadership]], &lt;br /&gt;
[[AnimationWML#short-leading|leading_anim]], &lt;br /&gt;
[[AnimationWML#short-levelin|levelin_anim]],&lt;br /&gt;
[[AnimationWML#short-levelout|levelout_anim]], &lt;br /&gt;
[[DirectActionsWML#.5Blift_fog.5D|lift_fog]],&lt;br /&gt;
[[AI_Recruitment#instructions-limit|limit]],&lt;br /&gt;
[[InternalActionsWML#set_variables-literal|literal]],&lt;br /&gt;
[[AddonsWML#load_resource|load_resource]],&lt;br /&gt;
[[LocaleWML|locale]],&lt;br /&gt;
[[InterfaceActionsWML#.5Block_view.5D|lock_view]],&lt;br /&gt;
[[LuaWML|lua]];&lt;br /&gt;
|-&lt;br /&gt;
|''M:'' &lt;br /&gt;
[[UnitTypeWML#variation|male]], &lt;br /&gt;
[[SavefileWML|menu_item]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|message]],&lt;br /&gt;
[[Micro AIs|micro_ai]],&lt;br /&gt;
[[AnimationWML#The .5Bframe.5D tag|missile_frame]],&lt;br /&gt;
[[ModificationWML|modification]],&lt;br /&gt;
[[SingleUnitWML#modifications|modifications]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_ai.5D|modify_ai]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_side.5D|modify_side]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_turns.5D|modify_turns]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_unit.5D|modify_unit]],&lt;br /&gt;
[[AddonsWML#modify_unit_type|modify_unit_type]],&lt;br /&gt;
[[ReplayWML#move|move]],&lt;br /&gt;
[[DirectActionsWML#.5Bmove_unit.5D|move_unit]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_unit_fake.5D|move_unit_fake]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_units_fake.5D|move_units_fake]],&lt;br /&gt;
[[AnimationWML#short-movement|movement_anim]], &lt;br /&gt;
[[UnitsWML#movement_costs|movement costs]],&lt;br /&gt;
[[UnitsWML#.5Bmovetype.5D|movetype]],&lt;br /&gt;
[[ScenarioWML#The_.5Bmultiplayer.5D_tag|multiplayer]],&lt;br /&gt;
[[EraWML#Defining_Factions|multiplayer_side]],&lt;br /&gt;
[[MusicListWML#.5Bmusic.5D|music]];&lt;br /&gt;
|-&lt;br /&gt;
|''N:'' &lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|not]], &lt;br /&gt;
[[InterfaceActionsWML#objectives-note|note]];&lt;br /&gt;
|-&lt;br /&gt;
|''O:'' &lt;br /&gt;
[[DirectActionsWML#.5Bobject.5D|object]],&lt;br /&gt;
[[InterfaceActionsWML#objectives-objective|objective]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bobjectives.5D|objectives]],&lt;br /&gt;
[[DirectActionsWML#.5Bon_undo.5D|on_undo]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bopen_help.5D|open_help]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|option]],&lt;br /&gt;
[[OptionWML|options]],&lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|or]];&lt;br /&gt;
|-&lt;br /&gt;
|''P:'' &lt;br /&gt;
[[IntroWML#.5Bpart.5D|part]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|petrifies]], &lt;br /&gt;
[[DirectActionsWML#.5Bpetrify.5D|petrify]], &lt;br /&gt;
[[DirectActionsWML#.5Bplace_shroud.5D|place_shroud]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|plague]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|poison]], &lt;br /&gt;
[[AnimationWML#short-post_movement|post_movement_anim]], &lt;br /&gt;
[[AnimationWML#short-pre_movement|pre_movement_anim]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|primary_attack]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|primary_unit]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bprint.5D|print]], &lt;br /&gt;
[[DirectActionsWML#.5Bprogress_achievement.5D|progress_achievement]], &lt;br /&gt;
[[DirectActionsWML#.5Bput_to_recall_list.5D|put_to_recall_list]];&lt;br /&gt;
|-&lt;br /&gt;
|''R:'' &lt;br /&gt;
[[UnitsWML#.5Brace.5D|race]], &lt;br /&gt;
[[InternalActionsWML#.5Brandom_placement.5D|random_placement]], &lt;br /&gt;
recall&amp;amp;nbsp;([[DirectActionsWML#.5Brecall.5D|action]], [[ReplayWML#recall|replay]]), &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|recalls]],&lt;br /&gt;
[[ReplayWML#recruit|recruit]], &lt;br /&gt;
[[AnimationWML#short-recruit|recruit_anim]], &lt;br /&gt;
[[AnimationWML#short-recruiting|recruiting_anim]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|recruits]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bredraw.5D|redraw]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|regenerate]],&lt;br /&gt;
[[InternalActionsWML#.5Bremove_event.5D|remove_event]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_item.5D|remove_item]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_object.5D|remove_object]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_shroud.5D|remove_shroud]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_sound_source.5D|remove_sound_source]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_time_area.5D|remove_time_area]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_trait.5D|remove_trait]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_unit_overlay.5D|remove_unit_overlay]],&lt;br /&gt;
[[ConditionalActionsWML#.5Brepeat.5D|repeat]],&lt;br /&gt;
[[DirectActionsWML#.5Breplace_map.5D|replace_map]], &lt;br /&gt;
[[DirectActionsWML#.5Breplace_schedule.5D|replace_schedule]], &lt;br /&gt;
[[ReplayWML|replay]], &lt;br /&gt;
[[SavefileWML|replay_start]],&lt;br /&gt;
[[DirectActionsWML#.5Breset_fog.5D|reset_fog]], &lt;br /&gt;
resistance&amp;amp;nbsp;([[AbilitiesWML#The_.5Babilities.5D_tag|ability]], [[UnitsWML#resistance|unit]]),&lt;br /&gt;
[[UnitsWML#.5Bresistance_defaults.5D|resistance_defaults]],&lt;br /&gt;
[[ThemeWML#The_toplevel_.5Btheme.5D_tag|resolution]],&lt;br /&gt;
[[ModificationWML#The_.5Bresource.5D_toplevel_tag|resource]],&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|return]],&lt;br /&gt;
[[InternalActionsWML#.5Brole.5D|role]], &lt;br /&gt;
[[TerrainMaskWML#rule|rule]];&lt;br /&gt;
|-&lt;br /&gt;
|''S:'' &lt;br /&gt;
[[SavefileWML|save]], &lt;br /&gt;
[[ScenarioWML#The_.5Bscenario.5D_tag|scenario]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bscreen_fade.5D|screen_fade]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll.5D|scroll]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll_to.5D|scroll_to]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll_to_unit.5D|scroll_to_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|secondary_attack]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|secondary_unit]], &lt;br /&gt;
[[HelpWML#section|section]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bselect_unit.5D|select_unit]], &lt;br /&gt;
[[ReplayWML#sequence|sequence]], &lt;br /&gt;
[[DirectActionsWML#.5Bset_achievement.5D|set_achievement]],&lt;br /&gt;
[[DirectActionsWML#.5Bset_extra_recruit.5D|set_extra_recruit]],&lt;br /&gt;
[[PersistenceWML#WML_Syntax|set_global_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D|set_menu_item]], &lt;br /&gt;
[[DirectActionsWML#.5Bset_recruit.5D|set_recruit]],&lt;br /&gt;
[[EffectWML#set_specials|set_specials]], &lt;br /&gt;
[[InternalActionsWML#.5Bset_variable.5D|set_variable]], &lt;br /&gt;
[[InternalActionsWML#.5Bset_variables.5D|set_variables]], &lt;br /&gt;
[[AnimationWML#short-sheath_weapon|sheath_weapon_anim]], &lt;br /&gt;
show_if&amp;amp;nbsp;([[InterfaceActionsWML#.5Bmessage.5D|message]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bobjectives.5D|objective]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D|set_menu_item]]),&lt;br /&gt;
[[InterfaceActionsWML#.5Bshow_objectives.5D|show_objectives]],&lt;br /&gt;
[[SideWML|side]], &lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|skirmisher]], &lt;br /&gt;
[[OptionWML#slider|slider]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|slow]], &lt;br /&gt;
[[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bsound.5D|sound]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bsound_source.5D|sound_source]], &lt;br /&gt;
source&amp;amp;nbsp;([[ReplayWML#attack|replay]], [[DirectActionsWML#.5Btunnel.5D|teleport]]),&lt;br /&gt;
[[UnitTypeWML#Special Notes|special_note]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|specials]], &lt;br /&gt;
[[InternalActionsWML#set_variables-split|split]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Stages|stage]], &lt;br /&gt;
[[AnimationWML#short-standing|standing_anim]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],&lt;br /&gt;
[[SingleUnitWML#status|status]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_gold.5D|store_gold]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_items.5D|store_items]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_locations.5D|store_locations]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_map_dimensions.5D|store_map_dimensions]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_reachable_locations.5D|store_reachable_locations]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_relative_direction.5D|store_relative_direction]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_side.5D|store_side]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_starting_location.5D|store_starting_location]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_time_of_day.5D|store_time_of_day]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_turns.5D|store_turns]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit.5D|store_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_defense.5D|store_unit_defense]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_defense_on.5D|store_unit_defense_on]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_type.5D|store_unit_type]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_type_ids.5D|store_unit_type_ids]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_villages.5D|store_villages]], &lt;br /&gt;
[[IntroWML|story]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|swarm]], &lt;br /&gt;
[[AchievementsWML#.5Bsub_achievement.5D|sub_achievement]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bswitch.5D|switch]],&lt;br /&gt;
[[InternalActionsWML#.5Bsync_variable.5D|sync_variable]];&lt;br /&gt;
|-&lt;br /&gt;
|''T:'' &lt;br /&gt;
[[DirectActionsWML#.5Btunnel.5D|target]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],&lt;br /&gt;
teleport&amp;amp;nbsp;([[AbilitiesWML|ability]], [[DirectActionsWML#.5Bteleport.5D|action]]),&lt;br /&gt;
[[AnimationWML#short-teleport|teleport_anim]],&lt;br /&gt;
[[DirectActionsWML#.5Bterrain.5D|terrain]], &lt;br /&gt;
[[UnitsWML#.5Bterrain_defaults.5D|terrain_defaults]],&lt;br /&gt;
[[TerrainGraphicsWML|terrain_graphics]], &lt;br /&gt;
[[TerrainMaskWML|terrain_mask]], &lt;br /&gt;
[[TerrainWML|terrain_type]], &lt;br /&gt;
[[ScenarioWML#The_.5Btest.5D_tag|test]],&lt;br /&gt;
[[InterfaceActionsWML#.5Btest_condition.5D|test_condition]],&lt;br /&gt;
[[TestWML#The_.5Btest_do_attack_by_id.5D_tag|test_do_attack_by_id]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|text_input]], &lt;br /&gt;
[[GettextForWesnothDevelopers#The_textdomain_tag|textdomain]],&lt;br /&gt;
[[ThemeWML|theme]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bif.5D|then]],&lt;br /&gt;
[[TerrainGraphicsWML|tile]], &lt;br /&gt;
[[TimeWML|time]], &lt;br /&gt;
[[DirectActionsWML#.5Btime_area.5D|time_area]], &lt;br /&gt;
[[HelpWML|topic]], &lt;br /&gt;
[[HelpWML|toplevel]], &lt;br /&gt;
[[UnitsWML#.5Btrait.5D|trait]], &lt;br /&gt;
[[DirectActionsWML#.5Btransform_unit.5D|transform_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bfind_path.5D|traveler]], &lt;br /&gt;
[[ConditionalActionsWML#.5Btrue.5D|true]],&lt;br /&gt;
[[DirectActionsWML#.5Btunnel.5D|tunnel]];&lt;br /&gt;
|-&lt;br /&gt;
|''U:'' &lt;br /&gt;
[[InterfaceActionsWML#.5Bunhide_unit.5D|unhide_unit]], &lt;br /&gt;
[[SingleUnitWML|unit]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bunit_overlay.5D|unit_overlay]], &lt;br /&gt;
[[UnitTypeWML|unit_type]], &lt;br /&gt;
[[InternalActionsWML#.5Bunit_worth.5D|unit_worth]], &lt;br /&gt;
[[UnitsWML|units]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bunlock_view.5D|unlock_view]],&lt;br /&gt;
[[DirectActionsWML#.5Bunpetrify.5D|unpetrify]], &lt;br /&gt;
[[DirectActionsWML#.5Bunstore_unit.5D|unstore_unit]],&lt;br /&gt;
[[InternalActionsWML#.5Bunsynced.5D|unsynced]];&lt;br /&gt;
|-&lt;br /&gt;
| ''V:'' &lt;br /&gt;
[[InternalActionsWML#.5Bset_variables.5D|value]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bvariable.5D|variable]],&lt;br /&gt;
[[VariablesWML#The_.5Bvariables.5D_tag|variables]],&lt;br /&gt;
[[TerrainGraphicsWML|variant]],&lt;br /&gt;
[[UnitTypeWML#Other_tags|variation]], &lt;br /&gt;
[[AnimationWML#short-victory|victory_anim]], &lt;br /&gt;
[[SideWML|village]],&lt;br /&gt;
[[UnitsWML#.5Bmovetype.5D|vision_costs]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bvolume.5D|volume]];&lt;br /&gt;
|-&lt;br /&gt;
| ''W:'' &lt;br /&gt;
[[ConditionalActionsWML#.5Bwhile.5D|while]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bwml_message.5D|wml_message]],&lt;br /&gt;
[[SchemaWML|wml_schema]];&lt;br /&gt;
|-&lt;br /&gt;
| ''Z:''&lt;br /&gt;
[[InterfaceActionsWML#.5Bzoom.5D|zoom]];&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;[[Category:WML Reference]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;A box with all the WML tags, each one linking to the page and section they are described in. This box should be included in each of the [[ReferenceWML|WML reference]] pages.&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=72656</id>
		<title>Template:WML Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=72656"/>
		<updated>2024-04-06T20:16:32Z</updated>

		<summary type="html">&lt;p&gt;Egallager: add '''[resolution]'''&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;reference-sidebar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;span class=&amp;quot;editlink&amp;quot;&amp;gt;&amp;amp;#91;[{{SERVER}}{{localurl:Template:WML Tags|action=edit}} edit]&amp;amp;#93;&amp;lt;/span&amp;gt;'''WML Tags'''&lt;br /&gt;
|-&lt;br /&gt;
|''A:'' &lt;br /&gt;
[[AbilitiesWML#The .5Babilities.5D tag|abilities]],&lt;br /&gt;
[[CreditsWML#.5Babout.5D|about]],&lt;br /&gt;
[[AchievementsWML#.5Bachievement.5D|achievement]],&lt;br /&gt;
[[AchievementsWML#.5Bachievement_group.5D|achievement_group]],&lt;br /&gt;
[[Lua_AI_Legacy_Methods_Howto#Behavior_.28Sticky.29_Candidate_Actions|add_ai_behavior]],&lt;br /&gt;
[[AdvancedPreferenceWML|advanced_preference]],&lt;br /&gt;
[[UnitTypeWML#advancefrom|advancefrom]],&lt;br /&gt;
[[UnitTypeWML#After_max_level_advancement_.28AMLA.29|advancement]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|advances]],&lt;br /&gt;
[[AbilitiesWML#affect_adjacent|affect_adjacent]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Top-level_Elements|ai]],&lt;br /&gt;
[[StandardSideFilter#allied_with|allied_with]], &lt;br /&gt;
[[DirectActionsWML#.5Ballow_end_turn.5D|allow_end_turn]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_extra_recruit.5D|allow_extra_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_recruit.5D|allow_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Ballow_undo.5D|allow_undo]],&lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|and]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|animate]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|animate_unit]],&lt;br /&gt;
[[AnimationWML#The .5Banimation.5D tag|animation]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|aspect]],&lt;br /&gt;
attack ([[ReplayWML#attack|replay]], [[UnitTypeWML#Attacks|weapon]]),&lt;br /&gt;
[[AnimationWML#short-attack|attack_anim]],&lt;br /&gt;
attacks ([[AbilitiesWML#The_.5Bspecials.5D_tag|special]], [[StatisticalScenarioWML#The_.5Bteam.5D_tag|stats]]),&lt;br /&gt;
[[AiWML#avoid|avoid]];&lt;br /&gt;
|-&lt;br /&gt;
|''B:'' &lt;br /&gt;
[[UnitTypeWML#base_unit|base_unit]], &lt;br /&gt;
[[IntroWML#.5Bbackground_layer.5D|background_layer]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|berserk]], &lt;br /&gt;
[[BinaryPathWML|binary_path]],&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|break]],&lt;br /&gt;
[[EditorWML#The_.5Bbrush.5D_tag|brush]];&lt;br /&gt;
|-&lt;br /&gt;
|''C:'' &lt;br /&gt;
[[CampaignWML#The_.5Bcampaign.5D_tag|campaign]],&lt;br /&gt;
[[DirectActionsWML#.5Bcancel_action.5D|cancel_action]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bcandidate_action.5D_Tag|candidate_action]], &lt;br /&gt;
[[DirectActionsWML#.5Bcapture_village.5D|capture_village]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bswitch.5D|case]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|chance_to_hit]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bchange_theme.5D|change_theme]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bchat.5D|chat]],&lt;br /&gt;
[[OptionWML#checkbox|checkbox]],&lt;br /&gt;
[[OptionWML#choice|choice]],&lt;br /&gt;
[[ReplayWML#choose|choose]],&lt;br /&gt;
[[PersistenceWML#WML Syntax|clear_global_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bclear_menu_item.5D|clear_menu_item]],&lt;br /&gt;
[[InternalActionsWML#.5Bclear_variable.5D|clear_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bcolor_adjust.5D|color_adjust]],&lt;br /&gt;
[[GameConfigWML#Color_Palettes|color_palette]],&lt;br /&gt;
[[GameConfigWML#Color_Palettes|color_range]],&lt;br /&gt;
command&amp;amp;nbsp;([[ConditionalActionsWML#.5Bcommand.5D|action]], [[ReplayWML|replay]]),&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|continue]],&lt;br /&gt;
[[CreditsWML#.5Bcredits_group.5D|credits_group]],&lt;br /&gt;
[[AiWML#The_.5Bgoal.5D_Tag|criteria]];&lt;br /&gt;
|-&lt;br /&gt;
|''D:'' &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|damage]],&lt;br /&gt;
[[AnimationWML#short-death|death]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|deaths]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|default]], &lt;br /&gt;
[[AnimationWML#short-defend|defend]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|defends]],&lt;br /&gt;
[[UnitsWML#defense|defense]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bdelay.5D|delay]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bdeprecated_message.5D|deprecated_message]],&lt;br /&gt;
[[ReplayWML#attack|destination]],&lt;br /&gt;
[[CampaignWML#difficulty|difficulty]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|disable]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_end_turn.5D|disallow_end_turn]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_extra_recruit.5D|disallow_extra_recruit]],&lt;br /&gt;
[[DirectActionsWML#.5Bdisallow_recruit.5D|disallow_recruit]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bwhile.5D|do]], &lt;br /&gt;
[[DirectActionsWML#.5Bdo_command.5D|do_command]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|drains]], &lt;br /&gt;
[[AnimationWML#short-draw_weapon|draw_weapon_anim]];&lt;br /&gt;
|-&lt;br /&gt;
|''E:'' &lt;br /&gt;
[[EditorWML#The_.5Beditor_group.5D_tag|editor_group]],&lt;br /&gt;
[[EditorWML#The_.5Beditor_music.5D_tag|editor_music]],&lt;br /&gt;
[[EditorWML#The_.5Beditor_times.5D_tag|editor_times]],&lt;br /&gt;
[[EffectWML|effect]],&lt;br /&gt;
else&amp;amp;nbsp;([[ConditionalActionsWML#.5Bif.5D|action]], [[AnimationWML#Conditional Branches|animation]]), [[ConditionalActionsWML#.5Bif.5D|elseif]],&lt;br /&gt;
[[DirectActionsWML#.5Bendlevel.5D|endlevel]],&lt;br /&gt;
end_turn&amp;amp;nbsp;([[DirectActionsWML#.5Bend_turn.5D|action]], [[ReplayWML#end_turn|replay]]),&lt;br /&gt;
[[StandardSideFilter#enemy_of|enemy_of]], &lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Engines|engine]], &lt;br /&gt;
entry&amp;amp;nbsp;([[CreditsWML#.5Bentry.5D|credits]], [[OptionWML#entry|options]]),&lt;br /&gt;
[[EraWML|era]],&lt;br /&gt;
[[EventWML|event]],&lt;br /&gt;
[[StandardUnitFilter#filter_ability|experimental_filter_ability]],&lt;br /&gt;
[[StandardUnitFilter#filter_ability_active|experimental_filter_ability_active]],&lt;br /&gt;
[[AbilitiesWML#filter_specials|experimental_filter_specials]],&lt;br /&gt;
[[AnimationWML#short-extra|extra_anim]];&lt;br /&gt;
|-&lt;br /&gt;
|''F:''&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Aspects|facet]],&lt;br /&gt;
[[InterfaceActionsWML#.5Banimate_unit.5D|facing]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_units_fake.5D|fake_unit]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bfalse.5D|false]],&lt;br /&gt;
[[PblWML#.5Bfeedback.5D|feedback]],&lt;br /&gt;
[[UnitTypeWML#variation|female]], &lt;br /&gt;
filter ([[FilterWML|concept]], [[EventWML#.5Bfilter.5D|event]]),&lt;br /&gt;
[[StandardUnitFilter#filter_adjacent|filter_adjacent]], &lt;br /&gt;
[[StandardLocationFilter#filter_adjacent_location|filter_adjacent_location]], &lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_attack]],&lt;br /&gt;
[[AbilitiesWML#filter_attacker|filter_attacker]], &lt;br /&gt;
[[AbilitiesWML#filter_base_value|filter_base_value]], &lt;br /&gt;
[[EventWML#.5Bfilter_condition.5D|filter_condition]],&lt;br /&gt;
[[AbilitiesWML#filter_defender|filter_defender]], &lt;br /&gt;
[[AiWML#Filtering_Combat_with_the_attacks_Aspect|filter_enemy]],&lt;br /&gt;
[[StandardLocationFilter|filter_location]],&lt;br /&gt;
[[AbilitiesWML#filter_opponent|filter_opponent]], &lt;br /&gt;
[[AiWML#Filtering_Combat_with_the_attacks_Aspect|filter_own]],&lt;br /&gt;
[[StandardLocationFilter#filter_owner|filter_owner]], &lt;br /&gt;
[[StandardLocationFilter#filter_radius|filter_radius]], &lt;br /&gt;
[[SingleUnitWML#filter_recall|filter_recall]], &lt;br /&gt;
[[StandardUnitFilter|filter_second]],&lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_second_attack]],&lt;br /&gt;
[[AbilitiesWML#filter_self|filter_self]], &lt;br /&gt;
[[StandardSideFilter|filter_side]],&lt;br /&gt;
[[AbilitiesWML#filter_student|filter_student]], &lt;br /&gt;
[[FilterWML#Filtering_Vision|filter_vision]],&lt;br /&gt;
[[FilterWML#Filtering_Weapons|filter_weapon]], &lt;br /&gt;
[[FilterWML#Filtering_on_WML_data|filter_wml]],&lt;br /&gt;
[[InternalActionsWML#.5Bfind_path.5D|find_path]],&lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|fire_event]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|firststrike]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bfloating_text.5D|floating_text]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bfound_item.5D|found_item]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bfor.5D|for]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bforeach.5D|foreach]],&lt;br /&gt;
[[AnimationWML#The .5Bframe.5D tag|frame]];&lt;br /&gt;
|-&lt;br /&gt;
|''G:'' &lt;br /&gt;
[[GameConfigWML|game_config]],&lt;br /&gt;
[[PersistenceWML#WML Syntax|get_global_variable]],&lt;br /&gt;
[[AiWML#The_.5Bgoal.5D_Tag|goal]],&lt;br /&gt;
[[DirectActionsWML#.5Bgold.5D|gold]],&lt;br /&gt;
[[InterfaceActionsWML#objectives-gold_carryover|gold_carryover]];&lt;br /&gt;
|-&lt;br /&gt;
|''H:'' &lt;br /&gt;
[[DirectActionsWML#.5Bharm_unit.5D|harm_unit]],&lt;br /&gt;
[[StandardSideFilter#has_ally|has_ally]], &lt;br /&gt;
[[StandardUnitFilter#has_attack|has_attack]],&lt;br /&gt;
[[StandardSideFilter#has_unit|has_unit]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bhas_achievement.5D|has_achievement]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bhave_location.5D|have_location]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bhave_unit.5D|have_unit]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|heal_on_hit]], &lt;br /&gt;
[[DirectActionsWML#.5Bheal_unit.5D|heal_unit]],&lt;br /&gt;
[[AnimationWML#short-healed|healed_anim]], &lt;br /&gt;
[[AnimationWML#short-healing|healing_anim]], &lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|heals]], &lt;br /&gt;
[[UnitsWML#.5Bhide_help.5D|hide_help]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bhide_unit.5D|hide_unit]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|hides]];&lt;br /&gt;
|-&lt;br /&gt;
|''I:'' &lt;br /&gt;
[[AnimationWML#short-idle|idle_anim]], &lt;br /&gt;
if&amp;amp;nbsp;([[ConditionalActionsWML#.5Bif.5D|action]], [[AnimationWML#Conditional Branches|animation]], [[IntroWML|intro]]),&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|illuminates]], &lt;br /&gt;
image&amp;amp;nbsp;([[IntroWML#.5Bimage.5D|intro]], [[TerrainGraphicsWML#The_.5Bimage.5D_subtag|terrain]]),&lt;br /&gt;
[[ReplayWML#init_side|init_side]],&lt;br /&gt;
[[VariablesWML#.5Binsert_tag.5D|insert_tag]],&lt;br /&gt;
[[InterfaceActionsWML#.5Binspect.5D|inspect]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bitem.5D|item]],&lt;br /&gt;
[[EditorWML#The_.5Bitem_group.5D_tag|item_group]];&lt;br /&gt;
|-&lt;br /&gt;
|''J:''&lt;br /&gt;
[[UnitsWML#jamming_costs|jamming_costs]],&lt;br /&gt;
[[InternalActionsWML#join|join]];&lt;br /&gt;
|-&lt;br /&gt;
|''K:'' &lt;br /&gt;
[[DirectActionsWML#.5Bkill.5D|kill]],&lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|killed]];&lt;br /&gt;
|-&lt;br /&gt;
|''L:'' &lt;br /&gt;
[[InterfaceActionsWML#.5Blabel.5D|label]],&lt;br /&gt;
[[LanguageWML|language]],&lt;br /&gt;
[[SideWML#leader|leader]],&lt;br /&gt;
[[AiWML#leader_goal|leader_goal]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|leadership]], &lt;br /&gt;
[[AnimationWML#short-leading|leading_anim]], &lt;br /&gt;
[[AnimationWML#short-levelin|levelin_anim]],&lt;br /&gt;
[[AnimationWML#short-levelout|levelout_anim]], &lt;br /&gt;
[[DirectActionsWML#.5Blift_fog.5D|lift_fog]],&lt;br /&gt;
[[AI_Recruitment#instructions-limit|limit]],&lt;br /&gt;
[[InternalActionsWML#set_variables-literal|literal]],&lt;br /&gt;
[[AddonsWML#load_resource|load_resource]],&lt;br /&gt;
[[LocaleWML|locale]],&lt;br /&gt;
[[InterfaceActionsWML#.5Block_view.5D|lock_view]],&lt;br /&gt;
[[LuaWML|lua]];&lt;br /&gt;
|-&lt;br /&gt;
|''M:'' &lt;br /&gt;
[[UnitTypeWML#variation|male]], &lt;br /&gt;
[[SavefileWML|menu_item]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|message]],&lt;br /&gt;
[[Micro AIs|micro_ai]],&lt;br /&gt;
[[AnimationWML#The .5Bframe.5D tag|missile_frame]],&lt;br /&gt;
[[ModificationWML|modification]],&lt;br /&gt;
[[SingleUnitWML#modifications|modifications]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_ai.5D|modify_ai]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_side.5D|modify_side]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_turns.5D|modify_turns]],&lt;br /&gt;
[[DirectActionsWML#.5Bmodify_unit.5D|modify_unit]],&lt;br /&gt;
[[AddonsWML#modify_unit_type|modify_unit_type]],&lt;br /&gt;
[[ReplayWML#move|move]],&lt;br /&gt;
[[DirectActionsWML#.5Bmove_unit.5D|move_unit]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_unit_fake.5D|move_unit_fake]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmove_units_fake.5D|move_units_fake]],&lt;br /&gt;
[[AnimationWML#short-movement|movement_anim]], &lt;br /&gt;
[[UnitsWML#movement_costs|movement costs]],&lt;br /&gt;
[[UnitsWML#.5Bmovetype.5D|movetype]],&lt;br /&gt;
[[ScenarioWML#The_.5Bmultiplayer.5D_tag|multiplayer]],&lt;br /&gt;
[[EraWML#Defining_Factions|multiplayer_side]],&lt;br /&gt;
[[MusicListWML#.5Bmusic.5D|music]];&lt;br /&gt;
|-&lt;br /&gt;
|''N:'' &lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|not]], &lt;br /&gt;
[[InterfaceActionsWML#objectives-note|note]];&lt;br /&gt;
|-&lt;br /&gt;
|''O:'' &lt;br /&gt;
[[DirectActionsWML#.5Bobject.5D|object]],&lt;br /&gt;
[[InterfaceActionsWML#objectives-objective|objective]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bobjectives.5D|objectives]],&lt;br /&gt;
[[DirectActionsWML#.5Bon_undo.5D|on_undo]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bopen_help.5D|open_help]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|option]],&lt;br /&gt;
[[OptionWML|options]],&lt;br /&gt;
[[ConditionalActionsWML#Meta-Condition_Tags|or]];&lt;br /&gt;
|-&lt;br /&gt;
|''P:'' &lt;br /&gt;
[[IntroWML#.5Bpart.5D|part]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|petrifies]], &lt;br /&gt;
[[DirectActionsWML#.5Bpetrify.5D|petrify]], &lt;br /&gt;
[[DirectActionsWML#.5Bplace_shroud.5D|place_shroud]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|plague]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|poison]], &lt;br /&gt;
[[AnimationWML#short-post_movement|post_movement_anim]], &lt;br /&gt;
[[AnimationWML#short-pre_movement|pre_movement_anim]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|primary_attack]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|primary_unit]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bprint.5D|print]], &lt;br /&gt;
[[DirectActionsWML#.5Bprogress_achievement.5D|progress_achievement]], &lt;br /&gt;
[[DirectActionsWML#.5Bput_to_recall_list.5D|put_to_recall_list]];&lt;br /&gt;
|-&lt;br /&gt;
|''R:'' &lt;br /&gt;
[[UnitsWML#.5Brace.5D|race]], &lt;br /&gt;
[[InternalActionsWML#.5Brandom_placement.5D|random_placement]], &lt;br /&gt;
recall&amp;amp;nbsp;([[DirectActionsWML#.5Brecall.5D|action]], [[ReplayWML#recall|replay]]), &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|recalls]],&lt;br /&gt;
[[ReplayWML#recruit|recruit]], &lt;br /&gt;
[[AnimationWML#short-recruit|recruit_anim]], &lt;br /&gt;
[[AnimationWML#short-recruiting|recruiting_anim]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|recruits]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bredraw.5D|redraw]],&lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|regenerate]],&lt;br /&gt;
[[InternalActionsWML#.5Bremove_event.5D|remove_event]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_item.5D|remove_item]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_object.5D|remove_object]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_shroud.5D|remove_shroud]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_sound_source.5D|remove_sound_source]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_time_area.5D|remove_time_area]], &lt;br /&gt;
[[DirectActionsWML#.5Bremove_trait.5D|remove_trait]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bremove_unit_overlay.5D|remove_unit_overlay]],&lt;br /&gt;
[[ConditionalActionsWML#.5Brepeat.5D|repeat]],&lt;br /&gt;
[[DirectActionsWML#.5Breplace_map.5D|replace_map]], &lt;br /&gt;
[[DirectActionsWML#.5Breplace_schedule.5D|replace_schedule]], &lt;br /&gt;
[[ReplayWML|replay]], &lt;br /&gt;
[[SavefileWML|replay_start]],&lt;br /&gt;
[[DirectActionsWML#.5Breset_fog.5D|reset_fog]], &lt;br /&gt;
resistance&amp;amp;nbsp;([[AbilitiesWML#The_.5Babilities.5D_tag|ability]], [[UnitsWML#resistance|unit]]),&lt;br /&gt;
[[UnitsWML#.5Bresistance_defaults.5D|resistance_defaults]],&lt;br /&gt;
[[ThemeWML#The_toplevel_.5Btheme.5D_tag|resolution]],&lt;br /&gt;
[[ModificationWML#The_.5Bresource.5D_toplevel_tag|resource]],&lt;br /&gt;
[[InternalActionsWML#Flow_control_actions|return]],&lt;br /&gt;
[[InternalActionsWML#.5Brole.5D|role]], &lt;br /&gt;
[[TerrainMaskWML#rule|rule]];&lt;br /&gt;
|-&lt;br /&gt;
|''S:'' &lt;br /&gt;
[[SavefileWML|save]], &lt;br /&gt;
[[ScenarioWML#The_.5Bscenario.5D_tag|scenario]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bscreen_fade.5D|screen_fade]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll.5D|scroll]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll_to.5D|scroll_to]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bscroll_to_unit.5D|scroll_to_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|secondary_attack]], &lt;br /&gt;
[[InternalActionsWML#.5Bfire_event.5D|secondary_unit]], &lt;br /&gt;
[[HelpWML#section|section]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bselect_unit.5D|select_unit]], &lt;br /&gt;
[[ReplayWML#sequence|sequence]], &lt;br /&gt;
[[DirectActionsWML#.5Bset_achievement.5D|set_achievement]],&lt;br /&gt;
[[DirectActionsWML#.5Bset_extra_recruit.5D|set_extra_recruit]],&lt;br /&gt;
[[PersistenceWML#WML_Syntax|set_global_variable]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D|set_menu_item]], &lt;br /&gt;
[[DirectActionsWML#.5Bset_recruit.5D|set_recruit]],&lt;br /&gt;
[[EffectWML#set_specials|set_specials]], &lt;br /&gt;
[[InternalActionsWML#.5Bset_variable.5D|set_variable]], &lt;br /&gt;
[[InternalActionsWML#.5Bset_variables.5D|set_variables]], &lt;br /&gt;
[[AnimationWML#short-sheath_weapon|sheath_weapon_anim]], &lt;br /&gt;
show_if&amp;amp;nbsp;([[InterfaceActionsWML#.5Bmessage.5D|message]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bobjectives.5D|objective]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bset_menu_item.5D|set_menu_item]]),&lt;br /&gt;
[[InterfaceActionsWML#.5Bshow_objectives.5D|show_objectives]],&lt;br /&gt;
[[SideWML|side]], &lt;br /&gt;
[[AbilitiesWML#The_.5Babilities.5D_tag|skirmisher]], &lt;br /&gt;
[[OptionWML#slider|slider]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|slow]], &lt;br /&gt;
[[SavefileWML|snapshot]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bsound.5D|sound]], &lt;br /&gt;
[[InterfaceActionsWML#.5Bsound_source.5D|sound_source]], &lt;br /&gt;
source&amp;amp;nbsp;([[ReplayWML#attack|replay]], [[DirectActionsWML#.5Btunnel.5D|teleport]]),&lt;br /&gt;
[[UnitTypeWML#Special Notes|special_note]],&lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|specials]], &lt;br /&gt;
[[InternalActionsWML#set_variables-split|split]],&lt;br /&gt;
[[Wesnoth_AI_Framework#The_.5Bai.5D_Tag_.E2.80.94_Stages|stage]], &lt;br /&gt;
[[AnimationWML#short-standing|standing_anim]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bstatistics.5D_tag|statistics]],&lt;br /&gt;
[[SingleUnitWML#status|status]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_gold.5D|store_gold]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_items.5D|store_items]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_locations.5D|store_locations]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_map_dimensions.5D|store_map_dimensions]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_reachable_locations.5D|store_reachable_locations]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_relative_direction.5D|store_relative_direction]],&lt;br /&gt;
[[InternalActionsWML#.5Bstore_side.5D|store_side]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_starting_location.5D|store_starting_location]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_time_of_day.5D|store_time_of_day]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_turns.5D|store_turns]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit.5D|store_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_defense.5D|store_unit_defense]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_defense_on.5D|store_unit_defense_on]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_type.5D|store_unit_type]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_unit_type_ids.5D|store_unit_type_ids]], &lt;br /&gt;
[[InternalActionsWML#.5Bstore_villages.5D|store_villages]], &lt;br /&gt;
[[IntroWML|story]], &lt;br /&gt;
[[AbilitiesWML#The_.5Bspecials.5D_tag|swarm]], &lt;br /&gt;
[[AchievementsWML#.5Bsub_achievement.5D|sub_achievement]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bswitch.5D|switch]],&lt;br /&gt;
[[InternalActionsWML#.5Bsync_variable.5D|sync_variable]];&lt;br /&gt;
|-&lt;br /&gt;
|''T:'' &lt;br /&gt;
[[DirectActionsWML#.5Btunnel.5D|target]], &lt;br /&gt;
[[StatisticalScenarioWML#The_.5Bteam.5D_tag|team]],&lt;br /&gt;
teleport&amp;amp;nbsp;([[AbilitiesWML|ability]], [[DirectActionsWML#.5Bteleport.5D|action]]),&lt;br /&gt;
[[AnimationWML#short-teleport|teleport_anim]],&lt;br /&gt;
[[DirectActionsWML#.5Bterrain.5D|terrain]], &lt;br /&gt;
[[UnitsWML#.5Bterrain_defaults.5D|terrain_defaults]],&lt;br /&gt;
[[TerrainGraphicsWML|terrain_graphics]], &lt;br /&gt;
[[TerrainMaskWML|terrain_mask]], &lt;br /&gt;
[[TerrainWML|terrain_type]], &lt;br /&gt;
[[ScenarioWML#The_.5Btest.5D_tag|test]],&lt;br /&gt;
[[InterfaceActionsWML#.5Btest_condition.5D|test_condition]],&lt;br /&gt;
[[TestWML#The_.5Btest_do_attack_by_id.5D_tag|test_do_attack_by_id]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bmessage.5D|text_input]], &lt;br /&gt;
[[GettextForWesnothDevelopers#The_textdomain_tag|textdomain]],&lt;br /&gt;
[[ThemeWML|theme]],&lt;br /&gt;
[[ConditionalActionsWML#.5Bif.5D|then]],&lt;br /&gt;
[[TerrainGraphicsWML|tile]], &lt;br /&gt;
[[TimeWML|time]], &lt;br /&gt;
[[DirectActionsWML#.5Btime_area.5D|time_area]], &lt;br /&gt;
[[HelpWML|topic]], &lt;br /&gt;
[[HelpWML|toplevel]], &lt;br /&gt;
[[UnitsWML#.5Btrait.5D|trait]], &lt;br /&gt;
[[DirectActionsWML#.5Btransform_unit.5D|transform_unit]], &lt;br /&gt;
[[InternalActionsWML#.5Bfind_path.5D|traveler]], &lt;br /&gt;
[[ConditionalActionsWML#.5Btrue.5D|true]],&lt;br /&gt;
[[DirectActionsWML#.5Btunnel.5D|tunnel]];&lt;br /&gt;
|-&lt;br /&gt;
|''U:'' &lt;br /&gt;
[[InterfaceActionsWML#.5Bunhide_unit.5D|unhide_unit]], &lt;br /&gt;
[[SingleUnitWML|unit]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bunit_overlay.5D|unit_overlay]], &lt;br /&gt;
[[UnitTypeWML|unit_type]], &lt;br /&gt;
[[InternalActionsWML#.5Bunit_worth.5D|unit_worth]], &lt;br /&gt;
[[UnitsWML|units]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bunlock_view.5D|unlock_view]],&lt;br /&gt;
[[DirectActionsWML#.5Bunpetrify.5D|unpetrify]], &lt;br /&gt;
[[DirectActionsWML#.5Bunstore_unit.5D|unstore_unit]],&lt;br /&gt;
[[InternalActionsWML#.5Bunsynced.5D|unsynced]];&lt;br /&gt;
|-&lt;br /&gt;
| ''V:'' &lt;br /&gt;
[[InternalActionsWML#.5Bset_variables.5D|value]], &lt;br /&gt;
[[ConditionalActionsWML#.5Bvariable.5D|variable]],&lt;br /&gt;
[[VariablesWML#The_.5Bvariables.5D_tag|variables]],&lt;br /&gt;
[[TerrainGraphicsWML|variant]],&lt;br /&gt;
[[UnitTypeWML#Other_tags|variation]], &lt;br /&gt;
[[AnimationWML#short-victory|victory_anim]], &lt;br /&gt;
[[SideWML|village]],&lt;br /&gt;
[[UnitsWML#.5Bmovetype.5D|vision_costs]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bvolume.5D|volume]];&lt;br /&gt;
|-&lt;br /&gt;
| ''W:'' &lt;br /&gt;
[[ConditionalActionsWML#.5Bwhile.5D|while]],&lt;br /&gt;
[[InterfaceActionsWML#.5Bwml_message.5D|wml_message]],&lt;br /&gt;
[[SchemaWML|wml_schema]];&lt;br /&gt;
|-&lt;br /&gt;
| ''Z:''&lt;br /&gt;
[[InterfaceActionsWML#.5Bzoom.5D|zoom]];&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;[[Category:WML Reference]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;A box with all the WML tags, each one linking to the page and section they are described in. This box should be included in each of the WML reference pages.&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Art_Programs&amp;diff=72554</id>
		<title>Art Programs</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Art_Programs&amp;diff=72554"/>
		<updated>2024-03-29T17:41:34Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Free Image Post-Processors */ additional links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right; margin-left:1em;&amp;quot;&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
'''Big Note:''' It is mostly-possible to make wesnoth graphics with nothing more than MSPaint or Appleworks.  However, there are two major and '''vital''' things lacking in those programs - first, these programs cannot make images with transparent pixels, and second, they may not be able to save in the PNG format used by Wesnoth.  A program capable of those will have to be applied to images made with MSPaint when they are finished.&lt;br /&gt;
&lt;br /&gt;
=== Free Image Editors ===&lt;br /&gt;
The following are free image editing programs which can be used to create graphics for wesnoth.  These programs are Open-Source Software, like wesnoth, meaning they are free to use, and that you are free to look at the sourcecode.&lt;br /&gt;
&lt;br /&gt;
[https://www.gimp.org/ '''The GIMP'''] (Windows, Linux &amp;amp; Mac OS X); the &amp;quot;Gnu Image Manipulation Program&amp;quot; is recommended. Works on Linux/Windows/MacOsX.&lt;br /&gt;
&lt;br /&gt;
[https://www.aseprite.org/ '''Aseprite'''] is animated sprite editor &amp;amp; pixel art tool. Present in Linux packages (Debian/Ubuntu) and available in source on GitHub, but Windows/MacOsX binary is sold on home page.&lt;br /&gt;
&lt;br /&gt;
[http://mtpaint.sourceforge.net/ '''mtPaint'''] intented to easily create pixel art and manipulate digital photos. Works on Linux/Windows.&lt;br /&gt;
&lt;br /&gt;
[http://pulkomandy.tk/projects/GrafX2 '''GrafX2'''] is a bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance. Specialized in 256-color drawing, it includes a very large number of tools and effects that make it particularly suitable for pixel art, game graphics, and generally any detailed graphics painted with a mouse. The program is mostly developed on Linux and Windows, but is also portable on many other platforms.&lt;br /&gt;
&lt;br /&gt;
[https://www.pencil2d.org/ '''Pencil2D'''] lets you create traditional hand-drawn animation (cartoon) using both bitmap and vector graphics. Works on Linux/Windows/MacOsX.&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/seashore/ '''Seashore'''] (Mac OS X) this port of the the GIMP to a cocoa-based gui is recommended.  Seashore provides the basic features of GIMP.&lt;br /&gt;
&lt;br /&gt;
[https://opensword.org/pixen/ '''Pixen'''] (Mac OS X) is the OpenSword Group's tool for traditional SNES style sprite art - unlike most other editors, it has been designed for that specific task, and users may find it much less daunting than the Gimp or Photoshop.  This program was written in cocoa, and has a very good interface - version 3 will even include built-in support for making animations.&lt;br /&gt;
&lt;br /&gt;
[http://jdraw.sourceforge.net/index.php?page=6 '''JDraw'''] (for anything that can run Java - mac and windows included) is an image editor which has a subset of the features of Pixen, and a superset of the features of MSPaint.  It is a simple, straightforward pixel editing program.  If you use a mac, Pixen is probably a better idea.&lt;br /&gt;
&lt;br /&gt;
[https://www.getpaint.net/ '''Paint.NET'''] (Windows) is generally regarded as inferior to the Gimp or Photoshop, but is easier to look at for those with shorter attention spans, so some might find it of interest.&lt;br /&gt;
&lt;br /&gt;
[https://paintbrush.sourceforge.io/ '''Paintbrush'''] (Mac OS X) is a program intended to be a slightly modernized clone of the old MacPaint/MSPaint. Free/OSS, but note that though it is capable of saving PNGs, it is not capable of handling transparency.&lt;br /&gt;
&lt;br /&gt;
=== Free Image Post-Processors ===&lt;br /&gt;
&lt;br /&gt;
The '''utils/woptipng.py''' script is included in Wesnoth's source code. It runs the tools from ImageMagick/GraphicsMagick, OptiPNG and Advdef; links to all of these are below.&lt;br /&gt;
&lt;br /&gt;
[https://imagemagick.org/ '''ImageMagick'''] and [http://www.graphicsmagick.org/ '''GraphicsMagick'''] are a pair of open-source projects that forked. The '''utils/woptipng.py''' script needs the '''convert''' tool from either of these projects to remove non-pixel data from the file.&lt;br /&gt;
&lt;br /&gt;
[http://optipng.sourceforge.net/ '''OptiPNG'''] is an open-source image compressor.&lt;br /&gt;
&lt;br /&gt;
[http://www.advancemame.it/comp-readme '''AdvanceCOMP'''] is another open-source image compressor.&lt;br /&gt;
&lt;br /&gt;
[http://www.amake.us/software/pngcrusher/ '''PNGCrusher'''] (Mac OS X) is a handy lightweight tool that will compress your PNGs much more efficiently than Photoshop.  It is best used in tandem with saving the files from GraphicConverter, with the PNG filtering options on.  The tool it is based on, OptiPNG, is open source, and runs on both linux and windows.&lt;br /&gt;
&lt;br /&gt;
[http://imageoptim.pornel.net/ '''ImageOptim'''] (Mac OS X) optimizes images so they take up less disk space and load faster. It provides GUI for various optimisation tools: AdvPNG from AdvanceCOMP, OptiPNG, [https://pmt.sourceforge.io/pngcrush/ Pngcrush], [https://www.kokkonen.net/tjko/projects.html JpegOptim], jpegtran from libjpeg, [https://www.lcdf.org/gifsicle/ Gifsicle], PNGOUT, [https://github.com/shssoichiro/oxipng OxiPNG], [https://pngquant.org/ pngquant], [https://github.com/mozilla/mozjpeg mozjpeg], [https://github.com/google/guetzli Guetzli], [https://github.com/google/zopfli Zopfli], [https://github.com/svg/svgo svgo], and [https://github.com/RazrFalcon/svgcleaner svgcleaner].&lt;br /&gt;
&lt;br /&gt;
[https://imgbot.net/ '''Imgbot'''] is a GitHub bot that will automatically submit pull requests to compress your image files, if you store them in a GitHub repository. It runs ImageMagick under the hood. Note that there is an issue with it ([https://github.com/imgbot/Imgbot/issues/856 #856]) that can cause changes to image saturation, which has caused some add-on devs to reject pull requests from it, so be sure to decide whether you consider this acceptable or not before using it.&lt;br /&gt;
&lt;br /&gt;
[https://trimage.org/ '''Trimage'''], a cross-platform GUI tool inspired by ImageOptim from above. It runs a subset of the same tools as ImageOptim (specifically optipng, pngcrush, advpng, and jpegoptim) under the hood.&lt;br /&gt;
&lt;br /&gt;
=== Proprietary Image Editors ===&lt;br /&gt;
&lt;br /&gt;
==== Shareware ====&lt;br /&gt;
[https://www.lemkesoft.de/ '''GraphicConverter'''] (Mac OS X) by Lemkesoft is an excellent program for preparing and compressing png images for the game, and may also be useful for the creation of images.  The shareware fee is $30, although large parts of the program are fully functional for free.&lt;br /&gt;
&lt;br /&gt;
[http://www.kanzelsberger.com/pixel/ '''Pixel Image Editor'''] (Mac OS X, Windows, Linux, BeOS, and others) is a very full-featured program, intended to fulfill the same function that photoshop does.  It currently has a shareware fee of $32, though the final price once the product reaches v2.0, will be $79.&lt;br /&gt;
&lt;br /&gt;
[http://www.ultimatepaint.com/ '''JTL Ultimate Paint'''] (Windows) is a basic painting program, following the tradition of the earlier &amp;quot;DeluxePaint&amp;quot;.  Geared at painting, it can use photoshop plugins. It currently costs $34 for a basic version.  I do not know if this program can export PNG images, so ''caveat emptor''.&lt;br /&gt;
&lt;br /&gt;
[https://www.cosmigo.com/pixel_animation_software '''Pro Motion'''] (Windows) is a commercial pixel editing program.  It has many features tailored for animation and seamless square-tile creation, as well as features designed to ease the creation of images that would run in a game on the Game Boy Advance or a Mobile Phone platform.  The price of the normal version is $78.&lt;br /&gt;
&lt;br /&gt;
[https://graphicsgale.com/us/ '''GraphicsGale'''] (Windows) is a pixel editing program designed for animation. It is lightweight, portable, and entirely freeware. Supports many different image types, color palettes, and alpha channels.&lt;br /&gt;
&lt;br /&gt;
==== Non-shareware ====&lt;br /&gt;
[http://www.adobe.com/ '''Photoshop or Photoshop Elements'''] (Windows and Mac OS X), these industry standard Adobe applications are available for approximately USD $100 and $700, respectively, depending on what version of the software you purchase and where you purchase it. You may be able acquire the use of these programs through a business or academic situation. Adobe Photoshop is extremely powerful, and is more than capable of some very advanced sprite techniques which elude simple bitmap programs - the price, however, can be a barrier to entry for some contributors.  More advanced (and therefore more expensive) version of Photoshop should have little advantage over Elements (the entry-level version, usually available for approximately USD $100) for creating unit and terrain art. Photoshop (and presumably Elements) does not compactly save PNG files. For space savings, Adobe users are recommended to resave final PNGs through Adobe's companion application ImageReady, or another application such as GraphicConverter or PNGCrusher.  Note - the ImageReady compression can also be used by saving the files through the &amp;quot;Save for Web...&amp;quot; menu command within Photoshop, if ImageReady is installed.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Create]]&lt;br /&gt;
* [[Art Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Art Tutorials]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettextForTranslators&amp;diff=72433</id>
		<title>GettextForTranslators</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettextForTranslators&amp;diff=72433"/>
		<updated>2024-02-29T20:20:20Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Tools */ add some additional links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Gettext for translators  ==&lt;br /&gt;
&lt;br /&gt;
=== For the engine and mainline campaigns ===&lt;br /&gt;
&lt;br /&gt;
The target audience of this page is anyone who wants to help with a language that's already in the list on [[WesnothTranslations]]. The files for these languages have already been set up, someone is already the maintainer, and the pages linked from that page say where to go and how to introduce yourself to the team. The effort is split with separate teams for each language, and each team can have its own working style.&lt;br /&gt;
&lt;br /&gt;
Because each team can work in different ways, please do not submit translations as pull requests on Github. While that seems like a good idea, it causes potential complications, so we ask that everyone talks to their language's maintainer and submits changes in the way that the maintainer decides to use.&lt;br /&gt;
&lt;br /&gt;
If you're starting a completely new translation, or taking over as the maintainer of a translation, then the next place to read would be the [[WesnothTranslationsHowTo]] page.&lt;br /&gt;
&lt;br /&gt;
=== For add-ons ===&lt;br /&gt;
&lt;br /&gt;
The target audience is anyone who wants to help translate an add-on, assuming the add-on's maintainer has already set it up for translation. Translations are shipped with the add-on, so it's up to the maintainer to choose how to receive the files and organise the workflow.&lt;br /&gt;
&lt;br /&gt;
To translate an add-on, skip to the [[#Files_for_add-ons|Files for add-ons]] section.&lt;br /&gt;
&lt;br /&gt;
If you are the maintainer of the add-on, the instructions for setting up the translation are on [[GettextForWesnothDevelopers]].&lt;br /&gt;
&lt;br /&gt;
== Textdomains and getting the files to translate ==&lt;br /&gt;
&lt;br /&gt;
The progress for each language is shown on https://www.wesnoth.org/gettext/ . Click on your language, and you'll see a breakdown into sections ''(textdomains)'', such as&lt;br /&gt;
* wesnoth&lt;br /&gt;
* wesnoth-editor&lt;br /&gt;
* wesnoth-help&lt;br /&gt;
* wesnoth-units&lt;br /&gt;
* wesnoth-lib (contains strings shared by game and editor)&lt;br /&gt;
* wesnoth-httt (the Heir to the Throne campaign)&lt;br /&gt;
* wesnoth-utbs (the Under the Burning Suns campaign)&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
Each has a separate file with a .po extension. For example, the Swedish translation has abbreviation ''sv'', and its translation of the editor's strings is in ''wesnoth-editor/sv.po''. The page on https://www.wesnoth.org/gettext/?view=langs&amp;amp;version=branch&amp;amp;lang=sv links to the current version in the main Git repository.&lt;br /&gt;
&lt;br /&gt;
Although the .po files contain text, please send the complete files as email attachments (or whichever method your team uses), rather than cutting and pasting lines from the file into an email. The translated strings are&lt;br /&gt;
very sensitive to formatting and whitespace changes.&lt;br /&gt;
&lt;br /&gt;
=== Files when running the game ===&lt;br /&gt;
&lt;br /&gt;
When the game runs it will look for an .mo file, for example ''translations/sv/LC_MESSAGES/wesnoth-editor.mo''. If you want to test your text in-game and you're happy to modify your installation:&lt;br /&gt;
&lt;br /&gt;
* Some .po editors can automatically generate .mo files.&lt;br /&gt;
* Deleting the .mo file will make the game look for ''translations/wesnoth-editor/sv.po'' instead.&lt;br /&gt;
&lt;br /&gt;
However you can also send your untested .po file to the maintainer and they should check that it looks correct in-game.&lt;br /&gt;
&lt;br /&gt;
=== Files for add-ons ===&lt;br /&gt;
&lt;br /&gt;
This assumes the add-on has .po files rather than .mo files. The engine supports both, but only .po are editable. For example, an add-on called Son of Haldric that has a Swedish translation would likely store it in:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric/translations/wesnoth-Son_of_Haldric/sv.po'' .&lt;br /&gt;
&lt;br /&gt;
That comes from:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric'' is where all files from the add-on are stored&lt;br /&gt;
* ''translations/wesnoth-Son_of_Haldric'' is configured by the maintainer&lt;br /&gt;
* ''sv'' is the language code for Swedish. The codes for each language are given in the big table on [https://www.wesnoth.org/gettext/ https://www.wesnoth.org/gettext/] .&lt;br /&gt;
&lt;br /&gt;
If it's been set up for translation but hasn't yet been translated into Swedish, it may instead have a file called ''wesnoth-Son_of_Haldric.pot''. This is a template which you can copy to &amp;quot;sv.po&amp;quot;, however first try opening the .pot file directly in your [[#Tools|translation tool]], as the it will likely prompt you to create a translation from the template.&lt;br /&gt;
&lt;br /&gt;
After editing the file, either refresh the cache (press F5 on the title screen) or restart Wesnoth to see the changes.&lt;br /&gt;
&lt;br /&gt;
Warning: files in the add-on directory will be overwritten or deleted if it's updated using the in-game Add-on Manager, so keep backups of files in a separate directory.&lt;br /&gt;
&lt;br /&gt;
== How to translate ==&lt;br /&gt;
&lt;br /&gt;
Now that you have the .po file to edit, it can be worked on using any of the programs listed in the [[#Tools|Tools section]]. The general preference in Wesnoth seems to be towards Poedit, but they all work on the same .po file format.&lt;br /&gt;
&lt;br /&gt;
The general concept is that the GUI will show the strings in English, along with a text-box to add the translation.&lt;br /&gt;
&lt;br /&gt;
=== Hints ===&lt;br /&gt;
&lt;br /&gt;
In addition to the English text, most strings have some additional information which in Poedit will be shown in the bottom-right of the screen. For example, the tutorial's &amp;quot;... this quintain!&amp;quot; has &amp;quot;[message]: speaker=Delfador&amp;quot;, meaning that it's [[InterfaceActionsWML#.5Bmessage.5D|said]] by the unit with id &amp;quot;Delfador&amp;quot;. Sometimes the hint is less obvious, often lines will be &amp;quot;[message]: speaker=unit&amp;quot;, normally meaning the unit whose move, attack, or death has triggered an event.&lt;br /&gt;
&lt;br /&gt;
Some strings will have additional hints, such as &amp;quot;Addressing Konrad&amp;quot; or &amp;quot;Addressing Li'sar&amp;quot;. The level of detail varies a lot between campaigns, please don't be afraid to point out when something needs to be improved.&lt;br /&gt;
&lt;br /&gt;
The .po files also say which source file the string came from, in Poedit 3.4 this is found in a right-click menu (right-click on a string in the top-left pane of the GUI).&lt;br /&gt;
&lt;br /&gt;
=== Carets ===&lt;br /&gt;
&lt;br /&gt;
There are ambiguous strings which should be translated in a different way depending on where they appear. For example, we have &amp;quot;General&amp;quot; in the preferences as &amp;quot;General preferences&amp;quot; and we can also have &amp;quot;a General&amp;quot;. These strings can have different translations for a given language, so we use &amp;quot;context&amp;quot; to solve this. The prefix only tries to give a hint about the string, and should be not translated, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=po&amp;gt;&lt;br /&gt;
msgid &amp;quot;Prefs section^General&amp;quot;&lt;br /&gt;
msgstr &amp;quot;General&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As another example, these lines in the tutorial both have the hint &amp;quot;[message]: speaker=student&amp;quot;; they're spoken by Konrad and Li'sar respectively:&lt;br /&gt;
* &amp;quot;A quintain? You want me to fight a dummy?&amp;quot;&lt;br /&gt;
* &amp;quot;female^A quintain? You want me to fight a dummy?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When an English string has a caret (the ^ symbol) in it, then everything before the first caret is removed before showing it to the player. In the translated strings, leave out everything before the caret.&lt;br /&gt;
&lt;br /&gt;
These caret hints are very commonly used in Wesnoth for strings where the translation may depend on the gender of the speaker, or the person spoken to. They're also used for strings such as &amp;quot;Prefs section^General&amp;quot;, where the string is the label on the &amp;quot;general preferences&amp;quot; tab, not a military rank.&lt;br /&gt;
&lt;br /&gt;
If you forget to strip out the caret hint, it will be displayed to the user unless the entire string is identical to the source text. This means that it should be stripped out even if the text is otherwise identical, to avoid breaking it if it's later determined that the text needs to be changed. For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=po&amp;gt;&lt;br /&gt;
# wrong but seems to work (shows as &amp;quot;Root&amp;quot;)&lt;br /&gt;
msgid &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
msgstr &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
# wrong and shows as &amp;quot;filesystem_path_system^Wurzel&amp;quot;&lt;br /&gt;
msgid &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
msgstr &amp;quot;filesystem_path_system^Wurzel&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
&lt;br /&gt;
Some editors can automatically detect inconsistencies between the English and the translated text, for example if the original ends with a full-stop and the translation ends with an exclamation mark. Poedit defaults to showing these above even the untranslated strings, but these can be false-positives - generally someone's already looked at these and decided that the translated text is better as-is.&lt;br /&gt;
&lt;br /&gt;
=== Fuzzy strings ===&lt;br /&gt;
&lt;br /&gt;
One of the downsides of Gettext is that spelling and grammar corrections in the English text break the link between the original and the translated text. The tools that generate .po files try to recover from this by using the old translation for the new English text, and marking the string as ''fuzzy''; in Poedit these are sorted below the completely untranslated strings, and shown with the &amp;quot;Needs Work&amp;quot; button lit along with a note about what the previous English text was.&lt;br /&gt;
&lt;br /&gt;
Be wary, this mechanism can also generate incorrect suggestions. For example it may decide that &amp;quot;Landar left $number troops to guard the council&amp;quot; is a spelling correction of &amp;quot;Kalenz left $number troops to guard the council&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Parts to leave untranslated ==&lt;br /&gt;
&lt;br /&gt;
Some translatable strings mix text to be translated with placeholders that are handled by the engine before displaying the text to the player. The text of the placeholder needs to be left untranslated.&lt;br /&gt;
&lt;br /&gt;
=== Dollar signs ===&lt;br /&gt;
&lt;br /&gt;
Most placeholders start with a dollar sign (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;), for example, &amp;lt;code&amp;gt;$number&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;$gold_amount&amp;lt;/code&amp;gt;. The details are in [[VariablesWML#Variable Substitution|VariablesWML]], but for translation the general rules are:&lt;br /&gt;
&lt;br /&gt;
Characters that appear in placeholders are letters, numbers, square brackets, underscores, full stops and question marks. Square brackets always appear in balanced pairs, and often enclose a secondary (nested) placeholder.&lt;br /&gt;
&lt;br /&gt;
* After a dollar sign, every character in the list above is part of the placeholder.&lt;br /&gt;
* A space ends the placeholder, and the space is also displayed to the player.&lt;br /&gt;
* A vertical bar (&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;) ends the placeholder, and the vertical bar isn't displayed to the player.&lt;br /&gt;
* If you need to put a full stop or question mark immediately after a placeholder that doesn't end with a vertical bar, add a vertical bar to separate them. Although it's not ''always'' necessary, it ''never'' hurts to add the vertical bar to be on the safe side.&lt;br /&gt;
* A dollar sign at the end of the string, or directly followed by a vertical bar (&amp;lt;code&amp;gt;$|&amp;lt;/code&amp;gt;), is displayed as a dollar sign.&lt;br /&gt;
* Obscure cases should have a hint about the string.&lt;br /&gt;
&lt;br /&gt;
=== Markup ===&lt;br /&gt;
&lt;br /&gt;
Some strings contain formatting markup. This comes in two styles. The most common is [[Pango formatting|Pango markup]], which is an HTML-like formatting language. The other is the custom help page markup, which looks superficially similar but is rather different, and is documented here.&lt;br /&gt;
&lt;br /&gt;
Like HTML, help markup consists of tags enclosed in angle brackets (eg &amp;lt;code&amp;gt;&amp;lt;italic&amp;gt;&amp;lt;/code&amp;gt;), with a slash added to the closing tag. The difference lies in what comes between the tags, which takes a key=value format where the value is usually enclosed in single quotes. There can be multiple key=value pairs, separated by spaces. Generally, all of that should be left untouched, with the exception of the &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; key. If you see something like &amp;lt;code&amp;gt;&amp;lt;italic&amp;gt;text='some text'&amp;lt;/italic&amp;gt;&amp;lt;/code&amp;gt;, the only part that should be translated is &amp;quot;some text&amp;quot;. Or if you see &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ref&amp;gt;dst='movement' text='zones of control'&amp;lt;/ref&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, then only &amp;quot;zones of control&amp;quot; should be translated, and the rest should be left untouched.&lt;br /&gt;
&lt;br /&gt;
If you need to include a single quote within &amp;lt;code&amp;gt;text='...'&amp;lt;/code&amp;gt;, you can add a backslash before it. However, most of the time it's preferred to use [[Typography_Style_Guide#Character_Usage_Summary|typographic punctuation]] instead.&lt;br /&gt;
&lt;br /&gt;
==  FAQ  ==&lt;br /&gt;
* '''What are &amp;quot;Plural-forms&amp;quot;?'''&lt;br /&gt;
** Some languages have different word forms for different numbers of things (for example in English we have &amp;quot;1 thing&amp;quot; but &amp;quot;2 thing'''s'''&amp;quot;). The rules are different for different languages. You can find them [http://translate.sourceforge.net/wiki/l10n/pluralforms here].&lt;br /&gt;
* '''Who can I ask for further information?'''&lt;br /&gt;
** You can ask in [[Support|Discord or IRC]]. Ping Ivanovic in Discord's #development or IRC's #wesnoth-dev channel. If you don't like IRC, send a mail to crazy-ivanovic AT gmx DOT net, or pm him (ivanovic) at the forum.&lt;br /&gt;
* '''Why is the diff from the previous version so huge? I have only made a small change to the .po file with poedit.'''&lt;br /&gt;
** When saving a .po file, poedit unwraps all strings. Usually, all .po files are wrapped at 80 characters, so if you want smaller diffs and less merge conflicts, you can execute the following commands each time after editing with poedit:&lt;br /&gt;
&lt;br /&gt;
   msgattrib file.po &amp;gt; file.po1&lt;br /&gt;
   mv file.po1 file.po&lt;br /&gt;
&lt;br /&gt;
==  Tools  ==&lt;br /&gt;
&lt;br /&gt;
There are several tools to work with .po files:&lt;br /&gt;
* [https://pofile.net/free-po-editor Free PO editor] (Web based)&lt;br /&gt;
* [http://userbase.kde.org/Lokalize Lokalize] (Unix KDE) (Formerly known as [https://directory.fsf.org/wiki/KBabel KBabel])&lt;br /&gt;
* [https://kate-editor.org/ Kate] (Unix KDE)&lt;br /&gt;
* [http://wiki.gnome.org/Apps/Gtranslator GTranslator] (Unix Gnome)&lt;br /&gt;
* [http://virtaal.translatehouse.org Virtaal] (Multiplatform)&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multiplatform)&lt;br /&gt;
* [http://www.gnu.org/software/emacs/emacs.html Emacs with po-mode] (Multiplatform)&lt;br /&gt;
* [http://www.vim.org/ Vim] with [http://www.vim.org/scripts/script.php?script_id=695 PO plug-in] (Multiplatform)&lt;br /&gt;
* [https://www.geany.org/ Geany] with [https://plugins.geany.org/pohelper.html PoHelper plug-in] (GTK3 / Multiplatform)&lt;br /&gt;
* [https://pypi.org/project/translate-toolkit/ Translate toolkit] (Python)&lt;br /&gt;
* [https://pootle.translatehouse.org/ Pootle] (Web-based)&lt;br /&gt;
* [https://transdict.com/ TransDict] (Web-based)&lt;br /&gt;
* [https://docs.translatehouse.org/projects/localization-guide/en/latest/guide/tools/list.html Translatehouse web page with a list of more tools]&lt;br /&gt;
&lt;br /&gt;
Of course, you can edit po files with any UTF-8 capable text editor, but the tools listed above have great advantages over any text editor regarding .po translation, like going to next fuzzy/untranslated string, searching only in specific fields (msgid, msgstr, comment), ...&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[WesnothTranslations]]&lt;br /&gt;
* [[WesnothTranslationsHowTo]]&lt;br /&gt;
* [[GettextForWesnothDevelopers]]&lt;br /&gt;
* [[TranslatorShellscript]]&lt;br /&gt;
* [http://www.wesnoth.org/gettext/ Translation statistics]&lt;br /&gt;
&lt;br /&gt;
[[Category:Translations]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettextForTranslators&amp;diff=72276</id>
		<title>GettextForTranslators</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettextForTranslators&amp;diff=72276"/>
		<updated>2024-02-19T20:15:02Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Tools */ Kate also shows up as listed explicitly in the &amp;quot;X-Generator:&amp;quot; field in some of Wesnoth's pofiles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Gettext for translators  ==&lt;br /&gt;
&lt;br /&gt;
=== For the engine and mainline campaigns ===&lt;br /&gt;
&lt;br /&gt;
The target audience of this page is anyone who wants to help with a language that's already in the list on [[WesnothTranslations]]. The files for these languages have already been set up, someone is already the maintainer, and the pages linked from that page say where to go and how to introduce yourself to the team. The effort is split with separate teams for each language, and each team can have its own working style.&lt;br /&gt;
&lt;br /&gt;
Because each team can work in different ways, please do not submit translations as pull requests on Github. While that seems like a good idea, it causes potential complications, so we ask that everyone talks to their language's maintainer and submits changes in the way that the maintainer decides to use.&lt;br /&gt;
&lt;br /&gt;
If you're starting a completely new translation, or taking over as the maintainer of a translation, then the next place to read would be the [[WesnothTranslationsHowTo]] page.&lt;br /&gt;
&lt;br /&gt;
=== For add-ons ===&lt;br /&gt;
&lt;br /&gt;
The target audience is anyone who wants to help translate an add-on, assuming the add-on's maintainer has already set it up for translation. Translations are shipped with the add-on, so it's up to the maintainer to choose how to receive the files and organise the workflow.&lt;br /&gt;
&lt;br /&gt;
To translate an add-on, skip to the [[#Files_for_add-ons|Files for add-ons]] section.&lt;br /&gt;
&lt;br /&gt;
If you are the maintainer of the add-on, the instructions for setting up the translation are on [[GettextForWesnothDevelopers]].&lt;br /&gt;
&lt;br /&gt;
== Textdomains and getting the files to translate ==&lt;br /&gt;
&lt;br /&gt;
The progress for each language is shown on https://www.wesnoth.org/gettext/ . Click on your language, and you'll see a breakdown into sections ''(textdomains)'', such as&lt;br /&gt;
* wesnoth&lt;br /&gt;
* wesnoth-editor&lt;br /&gt;
* wesnoth-help&lt;br /&gt;
* wesnoth-units&lt;br /&gt;
* wesnoth-lib (contains strings shared by game and editor)&lt;br /&gt;
* wesnoth-httt (the Heir to the Throne campaign)&lt;br /&gt;
* wesnoth-utbs (the Under the Burning Suns campaign)&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
Each has a separate file with a .po extension. For example, the Swedish translation has abbreviation ''sv'', and its translation of the editor's strings is in ''wesnoth-editor/sv.po''. The page on https://www.wesnoth.org/gettext/?view=langs&amp;amp;version=branch&amp;amp;lang=sv links to the current version in the main Git repository.&lt;br /&gt;
&lt;br /&gt;
Although the .po files contain text, please send the complete files as email attachments (or whichever method your team uses), rather than cutting and pasting lines from the file into an email. The translated strings are&lt;br /&gt;
very sensitive to formatting and whitespace changes.&lt;br /&gt;
&lt;br /&gt;
=== Files when running the game ===&lt;br /&gt;
&lt;br /&gt;
When the game runs it will look for an .mo file, for example ''translations/sv/LC_MESSAGES/wesnoth-editor.mo''. If you want to test your text in-game and you're happy to modify your installation:&lt;br /&gt;
&lt;br /&gt;
* Some .po editors can automatically generate .mo files.&lt;br /&gt;
* Deleting the .mo file will make the game look for ''translations/wesnoth-editor/sv.po'' instead.&lt;br /&gt;
&lt;br /&gt;
However you can also send your untested .po file to the maintainer and they should check that it looks correct in-game.&lt;br /&gt;
&lt;br /&gt;
=== Files for add-ons ===&lt;br /&gt;
&lt;br /&gt;
This assumes the add-on has .po files rather than .mo files. The engine supports both, but only .po are editable. For example, an add-on called Son of Haldric that has a Swedish translation would likely store it in:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric/translations/wesnoth-Son_of_Haldric/sv.po'' .&lt;br /&gt;
&lt;br /&gt;
That comes from:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric'' is where all files from the add-on are stored&lt;br /&gt;
* ''translations/wesnoth-Son_of_Haldric'' is configured by the maintainer&lt;br /&gt;
* ''sv'' is the language code for Swedish. The codes for each language are given in the big table on [https://www.wesnoth.org/gettext/ https://www.wesnoth.org/gettext/] .&lt;br /&gt;
&lt;br /&gt;
If it's been set up for translation but hasn't yet been translated into Swedish, it may instead have a file called ''wesnoth-Son_of_Haldric.pot''. This is a template which you can copy to &amp;quot;sv.po&amp;quot;, however first try opening the .pot file directly in your [[#Tools|translation tool]], as the it will likely prompt you to create a translation from the template.&lt;br /&gt;
&lt;br /&gt;
After editing the file, either refresh the cache (press F5 on the title screen) or restart Wesnoth to see the changes.&lt;br /&gt;
&lt;br /&gt;
Warning: files in the add-on directory will be overwritten or deleted if it's updated using the in-game Add-on Manager, so keep backups of files in a separate directory.&lt;br /&gt;
&lt;br /&gt;
== How to translate ==&lt;br /&gt;
&lt;br /&gt;
Now that you have the .po file to edit, it can be worked on using any of the programs listed in the [[#Tools|Tools section]]. The general preference in Wesnoth seems to be towards Poedit, but they all work on the same .po file format.&lt;br /&gt;
&lt;br /&gt;
The general concept is that the GUI will show the strings in English, along with a text-box to add the translation.&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
&lt;br /&gt;
Some editors can automatically detect inconsistencies between the English and the translated text, for example if the original ends with a full-stop and the translation ends with an exclamation mark. Poedit defaults to showing these above even the untranslated strings, but these can be false-positives - generally someone's already looked at these and decided that the translated text is better as-is.&lt;br /&gt;
&lt;br /&gt;
=== Fuzzy strings ===&lt;br /&gt;
&lt;br /&gt;
One of the downsides of Gettext is that spelling and grammar corrections in the English text break the link between the original and the translated text. The tools that generate .po files try to recover from this by using the old translation for the new English text, and marking the string as ''fuzzy''; in Poedit these are sorted below the completely untranslated strings, and shown with the &amp;quot;Needs Work&amp;quot; button lit along with a note about what the previous English text was.&lt;br /&gt;
&lt;br /&gt;
Be wary, this mechanism can also generate incorrect suggestions. For example it may decide that &amp;quot;Landar left $number troops to guard the council&amp;quot; is a spelling correction of &amp;quot;Kalenz left $number troops to guard the council&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==  FAQ  ==&lt;br /&gt;
* '''What are &amp;quot;Plural-forms&amp;quot;?'''&lt;br /&gt;
** Some languages have different word forms for different numbers of things (for example in English we have &amp;quot;1 thing&amp;quot; but &amp;quot;2 thing'''s'''&amp;quot;). The rules are different for different languages. You can find them [http://translate.sourceforge.net/wiki/l10n/pluralforms here].&lt;br /&gt;
* '''How do I use ' within a single-quote delimited string when translating text= in help screen texts?'''&lt;br /&gt;
** Add a backslash before it, however the preferred method now is to use [[Typography_Style_Guide#Character_Usage_Summary|typographic punctuation]] instead.&lt;br /&gt;
* '''What should I do with strings like &amp;quot;Prefs section^General&amp;quot;?'''&lt;br /&gt;
** There are ambiguous strings which should be translated in a different way depending on where they appear. For example, we have &amp;quot;General&amp;quot; in the preferences as &amp;quot;General preferences&amp;quot; and we can also have &amp;quot;a General&amp;quot;. These strings can have different translations for a given language, so we use &amp;quot;context&amp;quot; to solve this. The prefix only tries to give a hint about the string, and should be not translated, for example:&lt;br /&gt;
   msgid &amp;quot;Prefs section^General&amp;quot;&lt;br /&gt;
   msgstr &amp;quot;General&amp;quot;&lt;br /&gt;
* '''My PO file already has that translated to &amp;quot;Prefs section^General&amp;quot;, should it work?'''&lt;br /&gt;
** It does, but probably shouldn't. For strings that have no translation, the part before the &amp;quot;^&amp;quot; will be removed. This is also done when the PO's msgstr is exactly the same as the msgid, which will later break if someone makes any change to the text. For example:&lt;br /&gt;
   # wrong but seems to work (shows as &amp;quot;Root&amp;quot;)&lt;br /&gt;
   msgid &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
   msgstr &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
   # wrong and shows as &amp;quot;filesystem_path_system^Wurzel&amp;quot;&lt;br /&gt;
   msgid &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
   msgstr &amp;quot;filesystem_path_system^Wurzel&amp;quot;&lt;br /&gt;
* '''Who can I ask for further information?'''&lt;br /&gt;
** You can ask in [[Support|Discord or IRC]]. Ping Ivanovic in Discord's #development or IRC's #wesnoth-dev channel. If you don't like IRC, send a mail to crazy-ivanovic AT gmx DOT net, or pm him (ivanovic) at the forum.&lt;br /&gt;
* '''Why is the diff from the previous version so huge? I have only made a small change to the .po file with poedit.'''&lt;br /&gt;
** When saving .po file poedit unwraps all strings. Usually, all .po files are wrapped at 80 characters so if you want smaller diffs and less merge conflicts you can execute the following commands each time after editing with poedit:&lt;br /&gt;
&lt;br /&gt;
   msgattrib file.po &amp;gt; file.po1&lt;br /&gt;
   mv file.po1 file.po&lt;br /&gt;
&lt;br /&gt;
==  Tools  ==&lt;br /&gt;
&lt;br /&gt;
There are several tools to work with .po files:&lt;br /&gt;
* [https://pofile.net/free-po-editor Free PO editor] (Web based)&lt;br /&gt;
* [http://userbase.kde.org/Lokalize Lokalize] (Unix KDE) (Formerly known as [https://directory.fsf.org/wiki/KBabel KBabel])&lt;br /&gt;
* [https://kate-editor.org/ Kate] (Unix KDE)&lt;br /&gt;
* [http://wiki.gnome.org/Apps/Gtranslator GTranslator] (Unix Gnome)&lt;br /&gt;
* [http://virtaal.translatehouse.org Virtaal] (Multiplatform)&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multiplatform)&lt;br /&gt;
* [http://www.gnu.org/software/emacs/emacs.html Emacs with po-mode] (Multiplatform)&lt;br /&gt;
* [http://www.vim.org/ Vim] with [http://www.vim.org/scripts/script.php?script_id=695 PO plug-in] (Multiplatform)&lt;br /&gt;
&lt;br /&gt;
Of course, you can edit po files with any UTF-8 capable text editor, but the tools listed above have great advantages over any text editor regarding .po translation, like going to next fuzzy/untranslated string, searching only in specific fields (msgid, msgstr, comment), ...&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[WesnothTranslations]]&lt;br /&gt;
* [[WesnothTranslationsHowTo]]&lt;br /&gt;
* [[GettextForWesnothDevelopers]]&lt;br /&gt;
* [[TranslatorShellscript]]&lt;br /&gt;
* [http://www.wesnoth.org/gettext/ Translation statistics]&lt;br /&gt;
&lt;br /&gt;
[[Category:Translations]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettextForTranslators&amp;diff=72275</id>
		<title>GettextForTranslators</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettextForTranslators&amp;diff=72275"/>
		<updated>2024-02-19T17:19:49Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Tools */ Lokalize used to be KBabel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Gettext for translators  ==&lt;br /&gt;
&lt;br /&gt;
=== For the engine and mainline campaigns ===&lt;br /&gt;
&lt;br /&gt;
The target audience of this page is anyone who wants to help with a language that's already in the list on [[WesnothTranslations]]. The files for these languages have already been set up, someone is already the maintainer, and the pages linked from that page say where to go and how to introduce yourself to the team. The effort is split with separate teams for each language, and each team can have its own working style.&lt;br /&gt;
&lt;br /&gt;
Because each team can work in different ways, please do not submit translations as pull requests on Github. While that seems like a good idea, it causes potential complications, so we ask that everyone talks to their language's maintainer and submits changes in the way that the maintainer decides to use.&lt;br /&gt;
&lt;br /&gt;
If you're starting a completely new translation, or taking over as the maintainer of a translation, then the next place to read would be the [[WesnothTranslationsHowTo]] page.&lt;br /&gt;
&lt;br /&gt;
=== For add-ons ===&lt;br /&gt;
&lt;br /&gt;
The target audience is anyone who wants to help translate an add-on, assuming the add-on's maintainer has already set it up for translation. Translations are shipped with the add-on, so it's up to the maintainer to choose how to receive the files and organise the workflow.&lt;br /&gt;
&lt;br /&gt;
To translate an add-on, skip to the [[#Files_for_add-ons|Files for add-ons]] section.&lt;br /&gt;
&lt;br /&gt;
If you are the maintainer of the add-on, the instructions for setting up the translation are on [[GettextForWesnothDevelopers]].&lt;br /&gt;
&lt;br /&gt;
== Textdomains and getting the files to translate ==&lt;br /&gt;
&lt;br /&gt;
The progress for each language is shown on https://www.wesnoth.org/gettext/ . Click on your language, and you'll see a breakdown into sections ''(textdomains)'', such as&lt;br /&gt;
* wesnoth&lt;br /&gt;
* wesnoth-editor&lt;br /&gt;
* wesnoth-help&lt;br /&gt;
* wesnoth-units&lt;br /&gt;
* wesnoth-lib (contains strings shared by game and editor)&lt;br /&gt;
* wesnoth-httt (the Heir to the Throne campaign)&lt;br /&gt;
* wesnoth-utbs (the Under the Burning Suns campaign)&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
Each has a separate file with a .po extension. For example, the Swedish translation has abbreviation ''sv'', and its translation of the editor's strings is in ''wesnoth-editor/sv.po''. The page on https://www.wesnoth.org/gettext/?view=langs&amp;amp;version=branch&amp;amp;lang=sv links to the current version in the main Git repository.&lt;br /&gt;
&lt;br /&gt;
Although the .po files contain text, please send the complete files as email attachments (or whichever method your team uses), rather than cutting and pasting lines from the file into an email. The translated strings are&lt;br /&gt;
very sensitive to formatting and whitespace changes.&lt;br /&gt;
&lt;br /&gt;
=== Files when running the game ===&lt;br /&gt;
&lt;br /&gt;
When the game runs it will look for an .mo file, for example ''translations/sv/LC_MESSAGES/wesnoth-editor.mo''. If you want to test your text in-game and you're happy to modify your installation:&lt;br /&gt;
&lt;br /&gt;
* Some .po editors can automatically generate .mo files.&lt;br /&gt;
* Deleting the .mo file will make the game look for ''translations/wesnoth-editor/sv.po'' instead.&lt;br /&gt;
&lt;br /&gt;
However you can also send your untested .po file to the maintainer and they should check that it looks correct in-game.&lt;br /&gt;
&lt;br /&gt;
=== Files for add-ons ===&lt;br /&gt;
&lt;br /&gt;
This assumes the add-on has .po files rather than .mo files. The engine supports both, but only .po are editable. For example, an add-on called Son of Haldric that has a Swedish translation would likely store it in:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric/translations/wesnoth-Son_of_Haldric/sv.po'' .&lt;br /&gt;
&lt;br /&gt;
That comes from:&lt;br /&gt;
&lt;br /&gt;
* ''data/add-ons/Son_of_Haldric'' is where all files from the add-on are stored&lt;br /&gt;
* ''translations/wesnoth-Son_of_Haldric'' is configured by the maintainer&lt;br /&gt;
* ''sv'' is the language code for Swedish. The codes for each language are given in the big table on [https://www.wesnoth.org/gettext/ https://www.wesnoth.org/gettext/] .&lt;br /&gt;
&lt;br /&gt;
If it's been set up for translation but hasn't yet been translated into Swedish, it may instead have a file called ''wesnoth-Son_of_Haldric.pot''. This is a template which you can copy to &amp;quot;sv.po&amp;quot;, however first try opening the .pot file directly in your [[#Tools|translation tool]], as the it will likely prompt you to create a translation from the template.&lt;br /&gt;
&lt;br /&gt;
After editing the file, either refresh the cache (press F5 on the title screen) or restart Wesnoth to see the changes.&lt;br /&gt;
&lt;br /&gt;
Warning: files in the add-on directory will be overwritten or deleted if it's updated using the in-game Add-on Manager, so keep backups of files in a separate directory.&lt;br /&gt;
&lt;br /&gt;
== How to translate ==&lt;br /&gt;
&lt;br /&gt;
Now that you have the .po file to edit, it can be worked on using any of the programs listed in the [[#Tools|Tools section]]. The general preference in Wesnoth seems to be towards Poedit, but they all work on the same .po file format.&lt;br /&gt;
&lt;br /&gt;
The general concept is that the GUI will show the strings in English, along with a text-box to add the translation.&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
&lt;br /&gt;
Some editors can automatically detect inconsistencies between the English and the translated text, for example if the original ends with a full-stop and the translation ends with an exclamation mark. Poedit defaults to showing these above even the untranslated strings, but these can be false-positives - generally someone's already looked at these and decided that the translated text is better as-is.&lt;br /&gt;
&lt;br /&gt;
=== Fuzzy strings ===&lt;br /&gt;
&lt;br /&gt;
One of the downsides of Gettext is that spelling and grammar corrections in the English text break the link between the original and the translated text. The tools that generate .po files try to recover from this by using the old translation for the new English text, and marking the string as ''fuzzy''; in Poedit these are sorted below the completely untranslated strings, and shown with the &amp;quot;Needs Work&amp;quot; button lit along with a note about what the previous English text was.&lt;br /&gt;
&lt;br /&gt;
Be wary, this mechanism can also generate incorrect suggestions. For example it may decide that &amp;quot;Landar left $number troops to guard the council&amp;quot; is a spelling correction of &amp;quot;Kalenz left $number troops to guard the council&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==  FAQ  ==&lt;br /&gt;
* '''What are &amp;quot;Plural-forms&amp;quot;?'''&lt;br /&gt;
** Some languages have different word forms for different numbers of things (for example in English we have &amp;quot;1 thing&amp;quot; but &amp;quot;2 thing'''s'''&amp;quot;). The rules are different for different languages. You can find them [http://translate.sourceforge.net/wiki/l10n/pluralforms here].&lt;br /&gt;
* '''How do I use ' within a single-quote delimited string when translating text= in help screen texts?'''&lt;br /&gt;
** Add a backslash before it, however the preferred method now is to use [[Typography_Style_Guide#Character_Usage_Summary|typographic punctuation]] instead.&lt;br /&gt;
* '''What should I do with strings like &amp;quot;Prefs section^General&amp;quot;?'''&lt;br /&gt;
** There are ambiguous strings which should be translated in a different way depending on where they appear. For example, we have &amp;quot;General&amp;quot; in the preferences as &amp;quot;General preferences&amp;quot; and we can also have &amp;quot;a General&amp;quot;. These strings can have different translations for a given language, so we use &amp;quot;context&amp;quot; to solve this. The prefix only tries to give a hint about the string, and should be not translated, for example:&lt;br /&gt;
   msgid &amp;quot;Prefs section^General&amp;quot;&lt;br /&gt;
   msgstr &amp;quot;General&amp;quot;&lt;br /&gt;
* '''My PO file already has that translated to &amp;quot;Prefs section^General&amp;quot;, should it work?'''&lt;br /&gt;
** It does, but probably shouldn't. For strings that have no translation, the part before the &amp;quot;^&amp;quot; will be removed. This is also done when the PO's msgstr is exactly the same as the msgid, which will later break if someone makes any change to the text. For example:&lt;br /&gt;
   # wrong but seems to work (shows as &amp;quot;Root&amp;quot;)&lt;br /&gt;
   msgid &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
   msgstr &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
   # wrong and shows as &amp;quot;filesystem_path_system^Wurzel&amp;quot;&lt;br /&gt;
   msgid &amp;quot;filesystem_path_system^Root&amp;quot;&lt;br /&gt;
   msgstr &amp;quot;filesystem_path_system^Wurzel&amp;quot;&lt;br /&gt;
* '''Who can I ask for further information?'''&lt;br /&gt;
** You can ask in [[Support|Discord or IRC]]. Ping Ivanovic in Discord's #development or IRC's #wesnoth-dev channel. If you don't like IRC, send a mail to crazy-ivanovic AT gmx DOT net, or pm him (ivanovic) at the forum.&lt;br /&gt;
* '''Why is the diff from the previous version so huge? I have only made a small change to the .po file with poedit.'''&lt;br /&gt;
** When saving .po file poedit unwraps all strings. Usually, all .po files are wrapped at 80 characters so if you want smaller diffs and less merge conflicts you can execute the following commands each time after editing with poedit:&lt;br /&gt;
&lt;br /&gt;
   msgattrib file.po &amp;gt; file.po1&lt;br /&gt;
   mv file.po1 file.po&lt;br /&gt;
&lt;br /&gt;
==  Tools  ==&lt;br /&gt;
&lt;br /&gt;
There are several tools to work with .po files:&lt;br /&gt;
* [https://pofile.net/free-po-editor Free PO editor] (Web based)&lt;br /&gt;
* [http://userbase.kde.org/Lokalize Lokalize] (Unix KDE) (Formerly known as [https://directory.fsf.org/wiki/KBabel KBabel])&lt;br /&gt;
* [http://wiki.gnome.org/Apps/Gtranslator GTranslator] (Unix Gnome)&lt;br /&gt;
* [http://virtaal.translatehouse.org Virtaal] (Multiplatform)&lt;br /&gt;
* [http://www.poedit.net/ poEdit] (Multiplatform)&lt;br /&gt;
* [http://www.gnu.org/software/emacs/emacs.html Emacs with po-mode] (Multiplatform)&lt;br /&gt;
* [http://www.vim.org/ Vim] with [http://www.vim.org/scripts/script.php?script_id=695 PO plug-in] (Multiplatform)&lt;br /&gt;
&lt;br /&gt;
Of course, you can edit po files with any UTF-8 capable text editor, but the tools listed above have great advantages over any text editor regarding .po translation, like going to next fuzzy/untranslated string, searching only in specific fields (msgid, msgstr, comment), ...&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[WesnothTranslations]]&lt;br /&gt;
* [[WesnothTranslationsHowTo]]&lt;br /&gt;
* [[GettextForWesnothDevelopers]]&lt;br /&gt;
* [[TranslatorShellscript]]&lt;br /&gt;
* [http://www.wesnoth.org/gettext/ Translation statistics]&lt;br /&gt;
&lt;br /&gt;
[[Category:Translations]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=72195</id>
		<title>User:Egallager</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Egallager&amp;diff=72195"/>
		<updated>2024-01-27T18:28:08Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Elsewhere on the web */ links to additional art repos (for ALA and TEG)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Hi, I am Eric Gallager. I am from New Hampshire.&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
I also go by [https://forums.wesnoth.org/memberlist.php?mode=viewprofile&amp;amp;u=219741 egallager] on the forums.&lt;br /&gt;
Here are links to the topics I've either started, or that are for campaigns I've taken over:&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53597 Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53601 A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47885 A Little Adventure]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=26800 The Earth's Gut]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Flight to Freedom]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=31&amp;amp;t=24967 The War of Terrador]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486 A New Order]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 Dawn of Thunder]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=7&amp;amp;t=54568 Call for translators (for my add-ons in general)]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?f=6&amp;amp;t=54369 Discussion of a Japanese &amp;quot;Let's Play&amp;quot; introduction to Wesnoth]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57132 Word association]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57215 Mainlining popular UMC tracks]&lt;br /&gt;
* [https://forums.wesnoth.org/viewtopic.php?t=57225 Categorizing UMC music by moods]&lt;br /&gt;
&lt;br /&gt;
== Elsewhere on the web ==&lt;br /&gt;
I go by [https://github.com/cooljeanius &amp;quot;cooljeanius&amp;quot;] on GitHub (it's an old handle), and keep the sources for many of my Wesnoth things on there:&lt;br /&gt;
* [https://github.com/cooljeanius/wesnoth_mods generalized mods collection]&lt;br /&gt;
* [https://github.com/cooljeanius/Son_Of_The_Black_Eye_Easy_Edition Son of the Black Eye: Easy Edition]&lt;br /&gt;
* [https://github.com/cooljeanius/Saving_Elensefar Saving Elensefar]&lt;br /&gt;
* [https://github.com/cooljeanius/dawn_of_thunder Dawn of Thunder]&lt;br /&gt;
* [https://github.com/cooljeanius/Two_Brothers_With_A_Third_Difficulty A Tale of Two Brothers With a Third Difficulty]&lt;br /&gt;
* [https://github.com/cooljeanius/The_War_of_Terrador The War of Terrador]&lt;br /&gt;
* [https://github.com/cooljeanius/A_New_Order A New Order] (with a separate repo, [https://github.com/cooljeanius/ANO_art ANO_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/A_Little_Adventure A Little Adventure] (with a separate repo, [https://github.com/cooljeanius/ALA_art ALA_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/The_Earths_Gut The Earth's Gut] (with a separate repo, [https://github.com/cooljeanius/TEG_art TEG_art], for the raw art assets used for it)&lt;br /&gt;
* [https://github.com/cooljeanius/Flight_Freedom Flight to Freedom]&lt;br /&gt;
* [https://github.com/cooljeanius/Roboke Roboke]&lt;br /&gt;
I also use that handle elsewhere, such as on Wikipedia: [https://en.wikipedia.org/wiki/User:Cooljeanius https://en.wikipedia.org/wiki/User:Cooljeanius]&lt;br /&gt;
&lt;br /&gt;
== This wiki ==&lt;br /&gt;
I have been editing (and intend to edit further) the following pages: [[ReferenceWML]], [[CharactersStorys]], [[Guide to UMC Content]], [[Glossary]], [[Maintenance tools]], and [[Available Music]].&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=72188</id>
		<title>FlightToFreedom</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=FlightToFreedom&amp;diff=72188"/>
		<updated>2024-01-27T05:49:40Z</updated>

		<summary type="html">&lt;p&gt;Egallager: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&amp;lt;span style=&amp;quot;font-size:&lt;br /&gt;
xx-large; font-weight: bold;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Flight to Freedom&amp;lt;/big&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-- http://wesnoth.slack.it/wesnoth-images/drake-flameheart.png --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last updated 1/27/24 (although before that, there was a long stretch where it hadn't been updated since 2/22/14, so much of the info on this page may still be out-of-date)&lt;br /&gt;
&lt;br /&gt;
Flight to Freedom is a campaign featuring the Drakes. The hero, Malakar, and his tribe have been enslaved by humans,&lt;br /&gt;
and Malakar must free the tribe and take revenge on his oppressors.&lt;br /&gt;
&lt;br /&gt;
Latest version is [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for Wesnoth 1.16.x+), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for Wesnoth 1.17.x+)&amp;lt;br/&amp;gt;&lt;br /&gt;
The forum thread is [http://www.wesnoth.org/forum/viewtopic.php?f=8&amp;amp;t=1887 here].&amp;lt;br/&amp;gt;&lt;br /&gt;
Made by MadMax, Nova&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently maintained by [[User:egallager|egallager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
9/6/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
News started, not that I expect much to come up.&lt;br /&gt;
&lt;br /&gt;
Artists wanted [http://www.wesnoth.org/forum/viewtopic.php?t=2996 here] for a new Kogw graphic.&amp;lt;br/&amp;gt;&lt;br /&gt;
Announce your loyalty to the Drake cause [http://www.wesnoth.org/forum/viewtopic.php?t=2976 here]!&lt;br /&gt;
&lt;br /&gt;
9/7/04&amp;lt;br/&amp;gt;&lt;br /&gt;
I need feedback to keep improving. Keep it coming.&lt;br /&gt;
&lt;br /&gt;
9/13/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Revision 27 released, with many changes. A major update.&lt;br /&gt;
&lt;br /&gt;
9/17/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated. Redeclare your loyalties [http://www.wesnoth.org/forum/viewtopic.php?t=3132 here]!&lt;br /&gt;
&lt;br /&gt;
9/19/04:&amp;lt;br/&amp;gt;&lt;br /&gt;
Poll updated again. Prove yourself [http://www.wesnoth.org/forum/viewtopic.php?t=3143 here]!&amp;lt;br/&amp;gt;&lt;br /&gt;
Campaign is on campaign server (requires CVS). Unless any major bugs arise before 0.8.5 is released, all future updates&lt;br /&gt;
will take place on the campaign server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/23/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28 released on campaign server. Contains new drakes, Kogw graphic, and several balance changes. Requires CVS&lt;br /&gt;
or better&amp;lt;br/&amp;gt;&lt;br /&gt;
Need attack/defense animations for Kogw graphic, need indoor time graphic (the picture under the map)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9/24/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.3 on campaign server. This is necessary for compatibility with CVS as of 9/24/04 (when the Drake Slave was&lt;br /&gt;
removed). Also has many bug fixes, including the bug that caused scenario 2 to hang.&lt;br /&gt;
&lt;br /&gt;
9/26/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 28.4 on server. Bug fixes, balancing, additions to River of Skulls (credit Wesvoid), and an easter egg (not&lt;br /&gt;
telling you what, but I will say it's randomly activated in Endgame).&lt;br /&gt;
&lt;br /&gt;
10/5/04&amp;lt;br/&amp;gt;&lt;br /&gt;
revision 29 released. 1.4MB. Major changes:&amp;lt;br/&amp;gt;&lt;br /&gt;
many bug fixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirit spawn animation&amp;lt;br/&amp;gt;&lt;br /&gt;
debugger unit for testing and cheating&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements to Rebellion, Manor, Exodus&amp;lt;br/&amp;gt;&lt;br /&gt;
new sound in the victory sequence&amp;lt;br/&amp;gt;&lt;br /&gt;
new Drakes&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that there are some nasty engine bugs (Savannah #10569, #10570) that cause the recall list to disappear in Open&lt;br /&gt;
Ocean, and the campaign to quit altogether in Drake Escape. If anyone can help, I would very much appreciate it.&lt;br /&gt;
&lt;br /&gt;
10/8/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. This changes the pier tiles to bridge, and it adds the Drake Hatchling back and the Drake Guard required&lt;br /&gt;
in scenario 21, fixing a major bug involving recruitment.&lt;br /&gt;
&lt;br /&gt;
10/15/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version. Bug in Drake Escape (#10570) worked around, but recall bug (#10569) is still at large. I also have made&lt;br /&gt;
Kogw level two, and gave him a level 3.&lt;br /&gt;
&lt;br /&gt;
11/21/04&amp;lt;br/&amp;gt;&lt;br /&gt;
New version released on campaign server. (2.2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improvements:&lt;br /&gt;
&lt;br /&gt;
switched to the x.x.x version system&amp;lt;br/&amp;gt;&lt;br /&gt;
neutral birds actually fly&amp;lt;br/&amp;gt;&lt;br /&gt;
in Drake Escape, Goblin Pillagers can pillage&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to many scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Rebellion&lt;br /&gt;
&lt;br /&gt;
1/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.4:&lt;br /&gt;
&lt;br /&gt;
bug fix&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline images for Survival and Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing improvements in Endgame&lt;br /&gt;
&lt;br /&gt;
1/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5:&lt;br /&gt;
&lt;br /&gt;
changes to Manor&amp;lt;br/&amp;gt;&lt;br /&gt;
a major bugfix&lt;br /&gt;
&lt;br /&gt;
1/20/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.5.1&lt;br /&gt;
&lt;br /&gt;
minor bugfix in Manor&lt;br /&gt;
&lt;br /&gt;
2/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6&lt;br /&gt;
&lt;br /&gt;
maps use new terrains where appropriate&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios set on Morogor now have their location denoted on a [http://gs295.sp.cs.cmu.edu/brennan/wercator/index.html Wercator]-&lt;br /&gt;
created map ([http://gs295.sp.cs.cmu.edu/brennan/wercator/maps/Peoples_in_Decline.jpg here])&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Manor, River of Skulls, Return to Morogor, Liberation, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&lt;br /&gt;
&lt;br /&gt;
2/19/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.1&lt;br /&gt;
&lt;br /&gt;
directory structure updated&amp;lt;br/&amp;gt;&lt;br /&gt;
balance changes to Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
0.8.11 compatibility&lt;br /&gt;
&lt;br /&gt;
2/27/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.6.2&lt;br /&gt;
&lt;br /&gt;
major bugfix to Blockade, should be possible to win now&lt;br /&gt;
&lt;br /&gt;
4/13/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.7&lt;br /&gt;
&lt;br /&gt;
scenarios updated for compatibility with 0.9&amp;lt;br/&amp;gt;&lt;br /&gt;
varied dialogue improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing to River of Skulls (removed village in chokepoint)&amp;lt;br/&amp;gt;&lt;br /&gt;
scenarios take advantage of new [objectives] tag, changing objectives added&amp;lt;br/&amp;gt;&lt;br /&gt;
maps now use river ford and ruin terrains&lt;br /&gt;
&lt;br /&gt;
5/14/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.8&lt;br /&gt;
&lt;br /&gt;
translated into German and Swedish&amp;lt;br/&amp;gt;&lt;br /&gt;
WML syntax updated for 0.9.1 (involving translations)&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Kogw&lt;br /&gt;
&lt;br /&gt;
6/10/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9&lt;br /&gt;
&lt;br /&gt;
WML updated for 0.9.2&amp;lt;br/&amp;gt;&lt;br /&gt;
WML optimizations, separate copies of drake unit.cfgs no longer needed&amp;lt;br/&amp;gt;&lt;br /&gt;
portrait for Malakar added&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
pngcrush run on all images&amp;lt;br/&amp;gt;&lt;br /&gt;
rock golem image updated&lt;br /&gt;
&lt;br /&gt;
6/22/05&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: This update breaks all in-game saves (NOT beginning-of-scenario saves) for the following scenarios:&amp;lt;br/&amp;gt;&lt;br /&gt;
Southern Shore&amp;lt;br/&amp;gt;&lt;br /&gt;
Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade&lt;br /&gt;
&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.1&lt;br /&gt;
&lt;br /&gt;
SHOULD be compatible with 0.9.2CVS&amp;lt;br/&amp;gt;&lt;br /&gt;
missing newline at end of Flight_Freedom.cfg fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF's Pirate Galleon does not override the in-game Pirate Galleon&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphics for the Driver&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Rebellion and Manor, Malakar has leadership in those scenarios&lt;br /&gt;
&lt;br /&gt;
7/03/05&amp;lt;br/&amp;gt;&lt;br /&gt;
Update:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 2.9.2&lt;br /&gt;
&lt;br /&gt;
balancing change to River of Skulls, second chokepoint added parallel to the first&amp;lt;br/&amp;gt;&lt;br /&gt;
mid-scenario objectives changes work properly now&amp;lt;br/&amp;gt;&lt;br /&gt;
enemies in Survival do not recruit infinite numbers of units&amp;lt;br/&amp;gt;&lt;br /&gt;
in Caravan, the caravan's movement points reflects its actual movement&lt;br /&gt;
&lt;br /&gt;
11/02/05&amp;lt;br/&amp;gt;&lt;br /&gt;
I know it's been overdue for over a month, but here it is. I've finally got the underground scenarios balanced, but there are so many changes (and so little time to debug) that I have had to release a beta. Hopefully, unless any major bugs are found, I'll finalize FtF 3.0 in a week.&lt;br /&gt;
&lt;br /&gt;
In the meantime, PLEASE reply if you find any bugs.&lt;br /&gt;
&lt;br /&gt;
12/2/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0&lt;br /&gt;
&lt;br /&gt;
FtF 3.0 finally released!&lt;br /&gt;
&lt;br /&gt;
Many changes across the board, far too many to list, but here are the major changes (including those of the 3.0 beta):&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Rebellion enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
underground scenarios balanced&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes, dialogue changes in Landfall&lt;br /&gt;
&lt;br /&gt;
12/3/05&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.0.1&lt;br /&gt;
&lt;br /&gt;
game-killing bug in Landfall fixed (map was not sent)&lt;br /&gt;
&lt;br /&gt;
3/23/06&amp;lt;br/&amp;gt;&lt;br /&gt;
UPDATE:&amp;lt;br/&amp;gt;&lt;br /&gt;
version 3.1&lt;br /&gt;
&lt;br /&gt;
updated for 1.12+, not backward compatible (beginning-of-scenario saves will still work)&amp;lt;br/&amp;gt;&lt;br /&gt;
new terrain added: dark tiles, from UtBS (replaces some dirt, sand in caves)&amp;lt;br/&amp;gt;&lt;br /&gt;
maps updated for new terrain&amp;lt;br/&amp;gt;&lt;br /&gt;
image references updated to reflect 1.12 directory structure&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain code for lava bridge changed to ` instead of ' to avoid conflict&amp;lt;br/&amp;gt;&lt;br /&gt;
Skeletal Dragon, Watch Tower moved into FtF from EI, SoTBE (credit Hanno for alerting me to this)&amp;lt;br/&amp;gt;&lt;br /&gt;
old wesnoth-8.ogg moved into FtF&amp;lt;br/&amp;gt;&lt;br /&gt;
soundtracks updated for music changes/removals&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Underground, River of Skulls, Endgame&amp;lt;br/&amp;gt;&lt;br /&gt;
unit .cfgs updated for 1.12 compatibility&amp;lt;br/&amp;gt;&lt;br /&gt;
easter egg temporarily commented out, pending consideration&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: due to technical differences between the old code and the 1.12+ compatible code, I was forced to split the campaign into two distributions, which are on their respective campaign servers. Because of this, however, the translations will not be current until the branch is created on wescamp (so that translators can update it).&lt;br /&gt;
&lt;br /&gt;
8/20/06&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2 is on the campaign server. It [i]should[/i] be (almost) fully compatible with 1.18, but I can't guarantee that every animation will work right. I have also made balancing changes up until Exodus (level 16), but the cave levels are still buggy.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Any feedback is appreciated!&lt;br /&gt;
&lt;br /&gt;
12/22/06&amp;lt;br/&amp;gt;&lt;br /&gt;
Hosted on http://warhangel.ru/wesnoth/campaigns/Flight_Freedom_1_x.zip . Special thanks to warhangel for hosting this campaign.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/5/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 3.3 uploaded.&lt;br /&gt;
&lt;br /&gt;
NPC AI should be fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
naga, saurian animations are working, graphics from Marsh Era&amp;lt;br/&amp;gt;&lt;br /&gt;
two attack icons added, one by Xan, the other from the Extended Era&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Manor, Underground, River of Skulls and Blockade&amp;lt;br/&amp;gt;&lt;br /&gt;
Rockfall fixed with RedLTeut's patch&amp;lt;br/&amp;gt;&lt;br /&gt;
other fixes and tweaks which I have forgotten about&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF 4.0 released, for Wesnoth 1.3 and up only.&amp;lt;br/&amp;gt;&lt;br /&gt;
compatible with new terrain system, will make cave roads passable&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
Survival edited, but cutscene not implemented yet&amp;lt;br/&amp;gt;&lt;br /&gt;
several dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
Landfall bridge collapse softened&amp;lt;br/&amp;gt;&lt;br /&gt;
new graphic for the enslaved Malakar&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Guerillas/Revolutionaries have visible spear overlay&amp;lt;br/&amp;gt;&lt;br /&gt;
losing text added if Unforgiver is sunk and Kogw has not disembarked&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4/21/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.1 released&amp;lt;br/&amp;gt;&lt;br /&gt;
many new storyline images added&amp;lt;br/&amp;gt;&lt;br /&gt;
many dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
extra enemy added to Survival, to shorten it&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Pirate Schooner and Clipper&amp;lt;br/&amp;gt;&lt;br /&gt;
all ships have reasonably fitting hit and die sounds&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor recruitment bug precluded&amp;lt;br/&amp;gt;&lt;br /&gt;
cutscene code moved to separate file (a purely internal change)&amp;lt;br/&amp;gt;&lt;br /&gt;
rain added to Open Ocean&amp;lt;br/&amp;gt;&lt;br /&gt;
ships should have names&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6/14/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2 released&amp;lt;br/&amp;gt;&lt;br /&gt;
dragon in Underground is now friendly&amp;lt;br/&amp;gt;&lt;br /&gt;
River of Skulls rebalanced, map edited&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
Blockade enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
new Malakar and Kamalar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
terrain error messages fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
FtF will sort properly in campaign menu&amp;lt;br/&amp;gt;&lt;br /&gt;
ships now have names&amp;lt;br/&amp;gt;&lt;br /&gt;
experience gained in Survival by Malakar will carry over to Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This will break saves of River of Skulls. Other saves will work, but they may use the old Malakar (which should work fine). &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/6/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.1 released, for Wesnoth 1.3.3+&amp;lt;br/&amp;gt;&lt;br /&gt;
bug fixes in Underground and River of Skulls&amp;lt;br/&amp;gt;&lt;br /&gt;
Manor enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
minor dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
a few minor bug and potential bug fixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/20/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.2.2 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
storyline graphics updated for new Malakar graphics&amp;lt;br/&amp;gt;&lt;br /&gt;
new storyline graphics for Underground and Rockfall&amp;lt;br/&amp;gt;&lt;br /&gt;
Caravan elves nerfed&amp;lt;br/&amp;gt;&lt;br /&gt;
Drake Escape enhanced&amp;lt;br/&amp;gt;&lt;br /&gt;
at least one bugfix&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/3/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3 released, for Wesnoth 1.3.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
changes (dialogue and other) to Rockfall, Betrayal, Hordes of the Foul Undead, Gate of Storms, Exodus, Blockade and Return to Morogor&amp;lt;br/&amp;gt;&lt;br /&gt;
two scenarios added (Swamps of the Jamolar and Council of War), part of a possible branch (accessed from Survival)&amp;lt;br/&amp;gt;&lt;br /&gt;
attainable objective added to Survival&amp;lt;br/&amp;gt;&lt;br /&gt;
experimental wave animations in Rebellion&amp;lt;br/&amp;gt;&lt;br /&gt;
minor bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
time over events added to some scenarios&amp;lt;br/&amp;gt;&lt;br /&gt;
non-expendable player characters are spawned with hero icon&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes to Betrayal and Blockade&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/23/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.1 released, for Wesnoth 1.3.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Forest of Nightmares (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
enhancements to Manor, includes irrevenant's indoors time-of-day image&amp;lt;br/&amp;gt;&lt;br /&gt;
several bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
thunder spirits in Landfall and Drake Escape will not spawn on first turn&amp;lt;br/&amp;gt;&lt;br /&gt;
multi-hex fireball attack code implemented (not used yet)&amp;lt;br/&amp;gt;&lt;br /&gt;
victory music added to victory events&amp;lt;br/&amp;gt;&lt;br /&gt;
lava transitions fixed&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9/1/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.2 released, for Wesnoth 1.3.7+&amp;lt;br/&amp;gt;&lt;br /&gt;
critical 1.3.7 compatibility bug fixed&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario, Hafwyt (still not 100% finished)&amp;lt;br/&amp;gt;&lt;br /&gt;
savegames of cave levels will not show snapshots&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10/22/07&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.3.3 released, for Wesnoth 1.3.9+&amp;lt;br/&amp;gt;&lt;br /&gt;
unit WML updated to 1.3.8+ standard&amp;lt;br/&amp;gt;&lt;br /&gt;
new scenario: Mountain Crypt (in second branch)&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
turn limit of Forest of Nightmares reduced to 25&amp;lt;br/&amp;gt;&lt;br /&gt;
balancing changes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/20/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.4 released, for Wesnoth 1.3.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
headers and borders added to all maps&amp;lt;br/&amp;gt;&lt;br /&gt;
two links added in secondary branch to main branch&amp;lt;br/&amp;gt;&lt;br /&gt;
sword-and-shield narrator icon replaced&amp;lt;br/&amp;gt;&lt;br /&gt;
new cutscenes&amp;lt;br/&amp;gt;&lt;br /&gt;
Mountain Crypt darkness code revised&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8/19/08&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.5 released, for Wesnoth 1.4+&amp;lt;br/&amp;gt;&lt;br /&gt;
scenario 19, Liberation, completely rewritten&amp;lt;br/&amp;gt;&lt;br /&gt;
dialogue changes&amp;lt;br/&amp;gt;&lt;br /&gt;
user team names added, so that the status table will show the names of sides in a level&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&lt;br /&gt;
levels use new Wesnoth music when appropriate&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2/20/09&amp;lt;br/&amp;gt;&lt;br /&gt;
version 4.6 released, for Wesnoth 1.5.6+&amp;lt;br/&amp;gt;&lt;br /&gt;
compatibility with Wesnoth 1.5 branch&amp;lt;br/&amp;gt;&lt;br /&gt;
bugfixes&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7/25/21&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.3.3 5.3.3] released, for Wesnoth 1.14+&amp;lt;br/&amp;gt;&lt;br /&gt;
egallager's first release since taking over as maintainer&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5/18/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.0 5.4.0] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
first release on the 1.16 add-on server&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11/27/22&amp;lt;br/&amp;gt;&lt;br /&gt;
version [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.1 5.4.1] released, for Wesnoth 1.16+&amp;lt;br/&amp;gt;&lt;br /&gt;
see release notes for full changelog&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1/27/24&amp;lt;br/&amp;gt;&lt;br /&gt;
versions [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] and [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] released, for Wesnoth 1.16+ and Wesnoth 1.17+ respectively.&amp;lt;br/&amp;gt;&lt;br /&gt;
see each of their release notes for full changelogs&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Guide_to_UMC_Content]]&lt;br /&gt;
* [[CampaignFlightFreedom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns - Development]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Guide_to_UMC_Content&amp;diff=72187</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=72187"/>
		<updated>2024-01-27T05:45:05Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Flight to Freedom */ new releases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to current-ish user-made content for players. It provides unfamiliar players with detailed information about campaigns (including story, completion, difficulty and playing style) as well as detailed information about eras. Feel free to edit this guide, as it is a wiki.&lt;br /&gt;
&lt;br /&gt;
This list covers add-ons for the latest 2 stable releases (1.14 and 1.16) of Wesnoth. There are archived versions of this page for [[Guide_to_UMC_Content/1.10|1.10]] and [[Guide_to_UMC_Content/1.12|1.12]].&lt;br /&gt;
&lt;br /&gt;
For content creators who loved an add-on that hasn't been added to 1.14 or 1.16 yet, and are wondering about taking it over, please ensure that its entry on the older (1.12 or 1.10) wiki page is up to date, add a link to the add-on's feedback thread in the forums, and generally do the tidy-up that doesn't need you to start changing the campaign, and then ask the old maintainer. (You should probably also wait a bit before assuming that a maintainer isn't already porting to 1.16).&lt;br /&gt;
&lt;br /&gt;
If you are looking for even more campaigns, please see the links in at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
When adding a campaign to the list, please place it in its alphabetically sorted location, ignoring any initial article (&amp;quot;A&amp;quot;, &amp;quot;An&amp;quot;, or &amp;quot;The&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Campaigns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status:&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Broken&amp;lt;/b&amp;gt; = Does not work at all&lt;br /&gt;
** &amp;lt;b&amp;gt;Incomplete&amp;lt;/b&amp;gt; = Partially written, no progress&lt;br /&gt;
** &amp;lt;b&amp;gt;WIP&amp;lt;/b&amp;gt; = Partially written, some progress&lt;br /&gt;
** &amp;lt;b&amp;gt;Complete&amp;lt;/b&amp;gt; = Completely written, but buggy as well as potential balance issues.&lt;br /&gt;
** &amp;lt;b&amp;gt;Finished&amp;lt;/b&amp;gt; = Completely written, minimal to no bugs, slight balance issues possible. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Version&amp;lt;/b&amp;gt; campaign version on the add-ons server&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Length:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Difficulty:&amp;lt;/b&amp;gt;&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;
** &amp;lt;b&amp;gt;Unbalanced&amp;lt;/b&amp;gt; = If you can't beat the hard mode, it isn't necessarily unbalanced, but if the difficulty changes erratically from one scenario to the next and only people using the debug mode have seen the final, then it is.&lt;br /&gt;
** &amp;lt;b&amp;gt;Easy&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Normal&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;Hard&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: If you didn't play the campaign, write the difficulty written on the add-ons server.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Style:&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Please note: Many campaigns will feature more than one style. Please list the most significant ones. If you don't know which style is the campaign you are listing, don't write this.&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;b&amp;gt;Skirmish&amp;lt;/b&amp;gt; = small to medium sized armies, your standard Wesnoth gameplay&lt;br /&gt;
** &amp;lt;b&amp;gt;Dungeon&amp;lt;/b&amp;gt; = long and narrow tunnels (not every underground scenario is a dungeon, a dungeon isn't necessarily underground)&lt;br /&gt;
** &amp;lt;b&amp;gt;RPG&amp;lt;/b&amp;gt; = 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;
** &amp;lt;b&amp;gt;Survival&amp;lt;/b&amp;gt; = being exposed to changing, spawning enemies while remaining on the same map&lt;br /&gt;
** &amp;lt;b&amp;gt;Large Battle&amp;lt;/b&amp;gt; = large number of units on the battlefield, sizely maps&lt;br /&gt;
** &amp;lt;b&amp;gt;Simulation&amp;lt;/b&amp;gt; = campaigns feat. terrain modification, alternative resources&lt;br /&gt;
** &amp;lt;b&amp;gt;Boss battle&amp;lt;/b&amp;gt; = the challenge is to defeat a single powerful enemy unit&lt;br /&gt;
** &amp;lt;b&amp;gt;Minigames&amp;lt;/b&amp;gt; = there are puzzles and minigames in the campaign that significantly differ from standard Wesnoth gameplay&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction/Era:&amp;lt;/b&amp;gt; Era for the whole campaign and more specifically the faction or unit composition you field.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Custom units:&amp;lt;/b&amp;gt; Link to the unit tree for cases that don't feel sufficiently described by Faction / Era entry.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and development threads at forums.wesnoth.org&lt;br /&gt;
&lt;br /&gt;
=== Blueprint for Eras ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Maintainer:&amp;lt;/b&amp;gt; if not maintained by the author anymore.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Status 1.14/1.16:&amp;lt;/b&amp;gt;&lt;br /&gt;
** see the list of statuses in the campaign blueprint&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Faction Descriptions:&amp;lt;/b&amp;gt; Describe your individual factions here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Requirements:&amp;lt;/b&amp;gt; (only if needed)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Forum:&amp;lt;/b&amp;gt; Links to the feedback and/or development threads at [https://forums.wesnoth.org/ forums.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
== How to play for UMC factions ==&lt;br /&gt;
&lt;br /&gt;
=== Southern Nations by Elvenisko ===&lt;br /&gt;
[[How_to_play_Death_Knights|Death Knights]] |&lt;br /&gt;
[[How_to_play_Southern_Drakes|Southern Drakes]] |&lt;br /&gt;
[[How_to_play_Southern_Dwarves|Southern Dwarves]] |&lt;br /&gt;
[[How_to_play_Southern_Elves|Southern Elves]] |&lt;br /&gt;
[[How_to_play_Southern_Mages|Southern Mages]] |&lt;br /&gt;
[[How_to_play_Southern_Mercenaries|Southern Mercenaries]] |&lt;br /&gt;
[[How_to_play_Southern_Orcs|Southern Orcs]] |&lt;br /&gt;
[[How_to_play_Southern_Swamplords|Southern Swamplords]] |&lt;br /&gt;
[[How_to_play_Southern_Nations|Comparison]] |&lt;br /&gt;
[https://units.wesnoth.org/1.17/Southern_Nations/en_US/era_southern.html All units (can be out of date)]&lt;br /&gt;
&lt;br /&gt;
== Battle for Wesnoth 1.14 and newer ==&lt;br /&gt;
&lt;br /&gt;
=== Campaigns ===&lt;br /&gt;
&lt;br /&gt;
==== After the Storm ====&lt;br /&gt;
&lt;br /&gt;
''Follow the journey of Galas and his 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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 0.10.11&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 episodes of 13 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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32091]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/After_the_Storm]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' (vultraz) Long, very enjoyable campaign with great story. (Knyghtmare) The best UMC campaign ever!&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#After_the_Storm|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Beastly Tale====&lt;br /&gt;
&lt;br /&gt;
''When a small village is beset by troubles, its fate rests in the hands of a young woodsman and the animals he befriends.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' GloccusV&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 2.0.3&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' [//units.wesnoth.org/1.14/A_Beastly_Tale/en_US/A_Beastly_Tale.html Here]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41434&amp;amp;p=633612&amp;amp;hilit=A+Beastly+Tale#p579093 Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Song of the Winds====&lt;br /&gt;
&lt;br /&gt;
''Every era has its heroes and heroines. Before the song of Myra, the odyssey of Akhen Wadjet and the aria of Tenma Yozora, there was the song of the winds that echoed in the mountains and halls at the heart of the Great Continent. Follow young Maat of Hiera'Shirsha and Prince Abhai of Garet-Desh in the war that set the stage for one of the greatest upheavals Irdya has ever witnessed.&lt;br /&gt;
(Prequel to the Dragon Trilogy)''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' revansurik&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.0.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 43 scenarios (some of them dialogue-only)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Custom units:''' War of Legends + Custom factions&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//https://forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53913 Here]&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:''' Complete 1.10.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31348]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/doofus-01/wesnoth-Bad_Moon_Rising]&lt;br /&gt;
&lt;br /&gt;
====  The Black Cross of Aleron ====&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 2.0.3&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;
'''[https://units.wesnoth.org/1.14/Black_Cross_of_Aleron/en_US/celmin-druid-siege.html Custom units]'''&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;
==== Danse Macabre ====&lt;br /&gt;
&lt;br /&gt;
''Macabre is a rare zombie who has intelligence and will. What's he like? What's his purpose?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' kamikaze&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' James_The_Invisible&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed, 1.3.2&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Unbalanced&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Danse_Macabre/en_US/Danse_Macabre.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=33745]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' While the campaign is playable on Wesnoth 1.14 without major issues, it is (still) in need of heavy re-balancing. Sadly, for various reasons I am not able to do it in near future but patches are always welcome, preferably in form of pull requests on [https://github.com/konecnyjakub/Danse_Macabre GitHub].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dawn of Thunder ====&lt;br /&gt;
&lt;br /&gt;
''A young elvish fighter is send to represent the Aethenwood at the Ka'lian. The adventure turns out to be bigger than expected.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Paulomat4&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' [https://github.com/cooljeanius/dawn_of_thunder/issues/3 Incomplete], latest release on the BfW 1.16 add-on server is [https://github.com/cooljeanius/dawn_of_thunder/releases/tag/0.2.4 0.2.4].&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Challenging&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, RPG-elements &lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Elves, Humans&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512 forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=39512]&lt;br /&gt;
&lt;br /&gt;
==== A Fiery Birth ====&lt;br /&gt;
&lt;br /&gt;
''A scholar of the Great Academy journeys to the land of the drakes to discover their secret origins.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Mathbrush&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=47861&amp;amp;p=623953 Here]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/brirush84/AFieryBirth]&lt;br /&gt;
&lt;br /&gt;
==== The Final Exam ====&lt;br /&gt;
&lt;br /&gt;
''Young mage Erika must find a magic book to become a true mage. But will it really be her final exam?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 2.6.1&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23398]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with varying objectives. Features female mage as leader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[FlightToFreedom|Flight to Freedom]] ====&lt;br /&gt;
&lt;br /&gt;
''Flight to Freedom chronicles the story of the drake hero Malakar, and his desperate cross-country flight out of slavery.''&lt;br /&gt;
&lt;br /&gt;
'''Authors:''' MadMax, Nova&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 20 playable scenarios + 1 dialogue-only, for a total of 21&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.4.2 5.4.2] (for BfW 1.16), or [https://github.com/cooljeanius/Flight_Freedom/releases/tag/5.5.0 5.5.0] (for BfW 1.17)&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Expert&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Large Battle, Puzzle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Drakes&lt;br /&gt;
&lt;br /&gt;
'''Required Wesnoth version:''' 1.16+ or 1.17+&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=1887 Development], [//forums.wesnoth.org/viewtopic.php?t=40195 Feedback]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/cooljeanius/Flight_Freedom github.com/cooljeanius/Flight_Freedom]&lt;br /&gt;
&lt;br /&gt;
==== Inky's Quest ====&lt;br /&gt;
&lt;br /&gt;
''The Cuttlefish Campaign''&lt;br /&gt;
&lt;br /&gt;
''Are the cuttlefish mere beasts or something more? What stories would they tell if they could speak? This story provides one possible answer. The easiest difficulty provides hints for novice players.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Telchin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 12 scenarios + story-only epilogue, for a total of 13&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.5.6&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Custom units (cuttlefish, tentacles, giant clams...). Enemies use both default era units and custom ones.&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/Inky_Quest/en_US/Inky_Quest.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=32501]&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:''' shadowm/ShikadiQueen/Iris&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 2.1.9&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.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=43309]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/project-ethea/Invasion_from_the_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[IftU Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
''[[Guide_to_UMC_Campaigns/Players_Reviews#Invasion_from_the_Unknown|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Leader of the Drakes ====&lt;br /&gt;
&lt;br /&gt;
''Leader of the drakes is killed. His son tries to defend homeland against the orcs. He choosed to ally with saurians, but other clans of drakes disagrees. Will fast and unexperienced Morin win against orcs and rebel drakes alike?''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.02b&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 3 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy/Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Drakes&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=53951&amp;amp;start=15]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Short, easy campaign with simple objectives. Features Drake Glider as leader and modified Drake Burner with cold and slowing blade.&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 threat, 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''' (5 chapters, 110 scenarios) - 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:''' Complete&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 200 (+8 talk-only) scenarios&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;
'''Forum:''' [//r.wesnoth.org/t32384]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/Dugy/Legend_of_the_Invincibles]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Legends_of_the_Invincibles|Players’ Review(s)]]'''&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;
==== A New Order ====&lt;br /&gt;
&lt;br /&gt;
''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 Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?''&lt;br /&gt;
&lt;br /&gt;
''Note: This campaign contains mature themes, some of which may be unsuitable for children.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' szopen&lt;br /&gt;
&lt;br /&gt;
'''Maintainers:''' nemaara (Yumi), egallager&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Version:''' [https://github.com/nemaara/A_New_Order/releases/tag/1.6.0 1.6.0]&lt;br /&gt;
&lt;br /&gt;
'''Length:''' Hard to say as it is non-linear; it is advertised as having 45 scenarios, but the numbering only goes up to 30 due to some of the scenarios being alternates to one another.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Requires BfW 1.16+. Also uses the &amp;quot;Akladian Music&amp;quot; add-on.&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Advertised as intermediate; could be considered hard, though.&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Mostly Skirmish, some Large Battle&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' mostly various human factions (including the Dunefolk), with the addition of the Akladian faction of humans&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.16/A_New_Order/en_US/A_New_Order.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum threads:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=6486&amp;amp;sid=2e644284f54e65736b4f1543b7098ef9 Development], [//forums.wesnoth.org/viewtopic.php?t=36183 Feedback], [//forums.wesnoth.org/viewtopic.php?t=6174 Original (older) art thread], [//forums.wesnoth.org/viewtopic.php?t=36074 Current art thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/nemaara/A_New_Order github.com/nemaara/A_New_Order]&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;
''' [[Guide_to_UMC_Campaigns/Players_Reviews#A_New_Order|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
==== The North Wind ====&lt;br /&gt;
&lt;br /&gt;
''Wesnoth's army was occupied fighting Mal Ravanal in the East, but there were whisperings of an orcish attack in the north. Konrad II must send Deoran, now an experienced rider and commander, with a small band of knights to hold off the orcs....''&lt;br /&gt;
&lt;br /&gt;
''This campaign features unique gameplay characteristics such as a lack of recruiting and a 24-turn time-of-day cycle.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' aelius, Deusite; pyndragon&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP, 0.3.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 1 playable scenario, 6 intended&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' RPG, Skirmish, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Loyalists&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=42854]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Ravagers====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' ''The Ravagers'' is a tale of pure revenge. A tale of justice served cold, told in a flashback-style point-of-view narrative, by a ranger in the Inn at Weldyn.&lt;br /&gt;
The campaign includes many new exciting gameplay features, fun mechanics such as drinking, hundreds of custom units, and many more.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' WhiteWolf&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished*&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 25 playable scenarios + 2 scene scenarios&lt;br /&gt;
&lt;br /&gt;
'''Requirements:''' Akladian Music Pack, Underness Music Pack&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Intermediate&lt;br /&gt;
&lt;br /&gt;
'''Style:'''  Skirmish + RPG / Flashback narrative&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Humans, Elves, Ravagers(dark humans)&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.14/The_Ravagers/en_US/The_Ravagers.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44930]&lt;br /&gt;
&lt;br /&gt;
'''*Notes:''' The main storyline is complete, but there are unfinished side-missions that are still in development. The campaign is aimed to become finished with version 1.2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Return from the Abyss ====&lt;br /&gt;
&lt;br /&gt;
''After taking part to a disastrous expedition, Khafir and his men are lost and isolated from their people, thousands of miles away from home, bound by a pact sealed with a powerful dwarvish king. Help him escape from the depth of Irdya and finding his way back, in an adventure across two worlds during the rise of a sinister force in the Great Continent.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' skeptical_troll&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 19 playable scenario + 10 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Hard&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Dungeon&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Dunefolk/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=44545]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rise of the Dunefolk ====&lt;br /&gt;
&lt;br /&gt;
''Adventure of Siabbin and Helare from small village in desert, who step by step made the foundation of the Dunefolk nation. Play a stunning adventure against many enemies in different maps - from sandstorm to swampy areas and caves. Defeat powerful lich lord and train one of the best dark mages in the world of Wesnoth.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Elven&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Completed&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 11 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish, Minigames, Survival&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default, Dunefolk and dark mage&lt;br /&gt;
&lt;br /&gt;
'''Note:''' enjoable gameplay with every map different. Enough experience to upgrade your units.&lt;br /&gt;
&lt;br /&gt;
==== The Return of the Darks ====&lt;br /&gt;
&lt;br /&gt;
''The Darks are a race which left Wesnoth in the ancient times and lives on Isles in the sky. But now the Magic wich helped them to move the Isles in Sky got lost and the isles are about to fall down. Rumion an adventurer goes to Wesnoth and searchs for something that could help them.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' thvk&lt;br /&gt;
&lt;br /&gt;
'''Status:''' WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 4 playable scenario + 2 story only&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Easy&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction/Era:''' Default + some self made units&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=52731]&lt;br /&gt;
&lt;br /&gt;
==== Secrets of the Ancients ====&lt;br /&gt;
&lt;br /&gt;
''From the Journal of Ardonna of Tarrynth:''&lt;br /&gt;
&lt;br /&gt;
''It's unfair that we humans must die after so few years. Though this is the natural order, we need not embrace it! The lords on the Green Isle knew how to live forever. Pursuit of that knowledge was declared illegal by King Haldric I, but I believe it is worth the risk: If I can rediscover the secrets of the ancients, not only will I cheat death, I will become a hero to the whole continent!''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' beetlenaut&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Mainlined (this is now one of the campaigns that is downloaded with Wesnoth itself)&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 18 playable scenarios + 3 story 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:''' Undead/Default&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=40545]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough:''' [[Secrets of the Ancients Walkthrough]]&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:''' 17 scenarios&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.2.0i&lt;br /&gt;
&lt;br /&gt;
'''Difficulty:''' Normal&lt;br /&gt;
&lt;br /&gt;
'''Style:''' Skirmish&lt;br /&gt;
&lt;br /&gt;
'''Faction:''' Goblins&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=41254]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#Swamplings|Players’ Review(s)]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Dark Hordes ====&lt;br /&gt;
&lt;br /&gt;
''Lead fugitive dark sorcerer Gwiti Ha’atel to mastery of the undead hordes.''&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Circon&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Various&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Incomplete/WIP&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 15 scenarios done so far&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 0.1.2&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 undead&lt;br /&gt;
&lt;br /&gt;
'''[//units.wesnoth.org/1.10/The_Dark_Hordes/en_US/The_Dark_Hordes_1.html Custom Units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16576&amp;amp;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== The Tale 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:''' Finished 0.11.0&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 5 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:''' Imperial Era, Sidhe.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=37880]&lt;br /&gt;
&lt;br /&gt;
'''Walkthrough''' There is a video-walkthrough by the campaign maintainer that begins  [https://www.youtube.com/watch?v=dGM1bjImvkI&amp;amp;list=PLZorLYWvUD7VIhaXxKwzO8iQANlp_TaF0 here].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of August 2014, all previous issues raised about this campaign have been addressed. If you've not played this campaign since 1.4 or 1.10, in this humble maintainers opinion, it's worth another go.&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;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=31799]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-To_Lands_Unknown]&lt;br /&gt;
&lt;br /&gt;
'''[[Guide_to_UMC_Campaigns/Players_Reviews#To_Lands_Unknown|Players’ Review(s)]]'''&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:''' Adamant14&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 1.0.14&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;
'''[//units.wesnoth.org/1.10/A_Vision_Blinded/en_US/A_Vision_Blinded.html Custom units]'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=8&amp;amp;t=23463]&lt;br /&gt;
&lt;br /&gt;
=== Eras ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Campaigns|*]]&lt;br /&gt;
[[Category:Eras|*]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Southern nations''' ====&lt;br /&gt;
&lt;br /&gt;
[[How_to_play_Southern_Nations|Everything about southern nations, including how to play series]] &lt;br /&gt;
&lt;br /&gt;
==== '''War of Legends''' ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' A multiplayer era focused on the Dark Irdya Campaigns. Contains 15 factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Tahsin Jahin Khalid (Lord-Knyghtmare)&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, new features being added for the 1.15.x version of the add-on&lt;br /&gt;
&lt;br /&gt;
'''Factions:'''&lt;br /&gt;
&lt;br /&gt;
# Aragwaithi&lt;br /&gt;
# Windsong&lt;br /&gt;
# Human Alliance&lt;br /&gt;
# Orcish Union&lt;br /&gt;
# Southerners (Desert Elves)&lt;br /&gt;
# Outlaws&lt;br /&gt;
# Elementals&lt;br /&gt;
# Undead&lt;br /&gt;
# Drakes&lt;br /&gt;
# Dark Legion&lt;br /&gt;
# Sylvans&lt;br /&gt;
# Minotaurs&lt;br /&gt;
# Vampires&lt;br /&gt;
# Dunefolk&lt;br /&gt;
# Knalgan Alliance&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=30087 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/knyghtmare/War_of_Legends]&lt;br /&gt;
&lt;br /&gt;
==== Era of Magic(EoMa) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Aiming at using the whole potential of Battle of Wesnoth's graphic engine, the Era of Magic is considered to have a most amazing special effects and attack animations in the BfW game. There are 8 playable factions with fully animated units and tons of special effects contained in the era, and the stories of them are told in the campaign &amp;quot;To Lands Unknown&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
'''Author:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Inferno8&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 3.1&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
Sky Kingdom - powerful magi of all kinds. Their knowledge allows them to cast amazing spells and summon creatures like unstopable Golems or mysterious Mus. Masters of Elements and Gurus are one of the most powerful human beings in the Era.&lt;br /&gt;
&lt;br /&gt;
Al-Kamija - these proud people are good warriors and spell casters of the desert. They use magical circles and scrolls to summon amazing creatures like Jinns or elementals from other dimension called Abyss. These creatures can't be poisoned, which is a great advantage. &lt;br /&gt;
(The campaign &amp;quot;To Lands Unknown&amp;quot; is mainly about the story of this faction)&lt;br /&gt;
&lt;br /&gt;
Tharis - fearsome Tharis faction is very dangerous especially at night. Cruel people of Tharis with their black magic and dreadful monsters like Hydra can demolish everything standing on their way. Being so powerful in attack, Tharis have no healer, so they need to push forward at all costs.&lt;br /&gt;
&lt;br /&gt;
Kharos - this strange name is the name of a beautiful country ruled by prophets of light. These peaceful people are masters of defense and support. Their formations of healers and Shielders assisted by Silver Warriors, who can teleport between friendly villages, are very hard to destroy.&lt;br /&gt;
&lt;br /&gt;
Barbarians - the best in hand-to-hand combat. This multi-cultural society divided into Goblins, Orcs, Cyclops and Trolls with their own advantages and disadvantages can be hard opponent, but separately they are very weak.&lt;br /&gt;
&lt;br /&gt;
Runemasters - these Dwarves use runic magic and equipment and are well known of their protection against magic. The Runemasters create steam machines like Gyrocopters, Robots and even mighty Mechanical Dragons. Units from this faction are very resistant but slow.&lt;br /&gt;
&lt;br /&gt;
Dark Blood Alliance - this faction is composed of agile lizards, giant frogs, wyverns swallowing enemies and salamanders, which have developed to perfection the art of disguise. At the head of the community stand shamans known for their water magic, which is used in the fight as well as in healing.&lt;br /&gt;
&lt;br /&gt;
Destroyers - a terrifying undead creations consisting of civilizations long gone...&lt;br /&gt;
&lt;br /&gt;
'''Version:''' 1.1.1 (February 18th, 2015)&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=20039 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' [//github.com/inferno8/wesnoth-Era_of_Magic]&lt;br /&gt;
&lt;br /&gt;
==== Ageless Era ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' Ageless Era is a compilation of the most popular eras and factions on the add-on server. It is more an era pack than an era.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' mnewton1, Ravana and various&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Ravana&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Finished, 4.19&lt;br /&gt;
&lt;br /&gt;
'''Unit Tree:''' [//units.wesnoth.org/1.12/Ageless_Era/en_US/Ageless%20Era.html Ageless Unit Tree (for 1.12)]&lt;br /&gt;
&lt;br /&gt;
'''Factions List:''' Currently there are 91 factions in the era:&lt;br /&gt;
&lt;br /&gt;
Default: Loyalist, Rebels, Northerners, Undead, Knalgan Alliance, Drakes, Khalifate&lt;br /&gt;
&lt;br /&gt;
Extended Era: Loyalist, Sylvans, Dwarves, Outlaws, Northerners, Undead, Chaos, Dark Elves&lt;br /&gt;
&lt;br /&gt;
Archaic Era: Khthon, Phantoms, Despair, Primeval, South-Seas, Ukians, Northern Orcs&lt;br /&gt;
&lt;br /&gt;
Era of Four Moons: Highlanders, Imperialists, Sea States, Darklanders, Dalefolk, Freemen, Pygmies, Whites&lt;br /&gt;
&lt;br /&gt;
Era of the Future: Welkin, Brungar&lt;br /&gt;
&lt;br /&gt;
BEEM: Anakes, Calidonians, Wood Warriors&lt;br /&gt;
&lt;br /&gt;
Custom Factions: Yokai, Dark Legion, Desert Elves, Steelhive, Frozen&lt;br /&gt;
&lt;br /&gt;
Era of Myths: Celestials, Devlings, Elementals, Therians, Vampires, The Warg, Windsong&lt;br /&gt;
&lt;br /&gt;
Feudal Era: Aragwaithi, Ceresians, Clockwork Dwarves, High Elves, Orcish Khaganates&lt;br /&gt;
&lt;br /&gt;
Imperial Era: Arendians, Cavernei, Issaelfr, Lavinian Legion, Marauders, Orcei Gladiatores, Sidhe&lt;br /&gt;
&lt;br /&gt;
Era of Strife: Eventide, Triththa, Free Saurians, Eltireans, Minotaurs&lt;br /&gt;
&lt;br /&gt;
Era of Magic: Barbarians, Dark Blood Alliance, Sky Kingdom, Kharos, Runemasters, Al-Kamija, Tharis, Destroyers&lt;br /&gt;
&lt;br /&gt;
Mercenaries Era: Highlanders, Enchanters, Avians, Slavers, Mercenaries, Equestrians, Emperor's Guard, Oracles, Holy Order, The Cult, Fanatics, Tribalists, Hive, Infernai, Refugees, Blight&lt;br /&gt;
&lt;br /&gt;
'''Git:''' [https://github.com/ProditorMagnus/Ageless-for-1-11 Ageless-for-1-11] and also for 1.12 and [https://github.com/ProditorMagnus/Ageless-for-1-14 1.14]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?f=19&amp;amp;t=25274 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Imperial Era (IE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' One of the oldest maintained user eras, the Imperial Era brings together seven different factions in a completely re-imagined setting, the world of Orbivm, a very lethal world indeed. The era contains both mainline and development versions of each faction and can be used to play five campaigns, each featuring a different race.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Orbivm Project (but really Turin)&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' UnwiseOwl&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Complete, 0.23&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
 &lt;br /&gt;
# Lavinian Legion - Based on the Roman Legion, the Lavinians have strong, versatile melee units in the legionaries and a range of support classes sourced from amongst the Lavinian population and various subjugated races. The legion are strong in the plains but weak when fighting in forested areas. The Lavinians are featured in &amp;quot;Fall of Silvium&amp;quot;.&lt;br /&gt;
# Sidhe - The Sidhe are a group of forest-dwelling elves whose focus is stealth and fleet movement. Their mages are able to channel the lightning itself, and their various other units move almost as fast. The Sidhe feature in &amp;quot;Tale of Vaniyera&amp;quot;.&lt;br /&gt;
# Marauders - Based on the Germanic peoples that eventually conquered Rome (hint, hint), the Marauders are equally as at home in the hills, forests and swamps of their homeland. Their hard-hitting melee units are practicalyl unstoppable during the night-time. The Marauders are the stars of the &amp;quot;Alfhelm the Wise&amp;quot; campaign.&lt;br /&gt;
# Orcei Gentorum - The orcs have been captured gladiators slaving away in the Lavinian arenas for generations.The life of an orc in Orbivm is harsh and brutal, just like the orcs themselves. The tale of the uprising of one such group of Orcs is told in &amp;quot;Up from Slavery&amp;quot;.&lt;br /&gt;
# Cavernei - The Cavernei are a dwarvish race with similarities to the mainline Knalgans, but with a greater emphasis on the military uses of runesmithing. They get a campaign too, in &amp;quot;Gali's Contract&amp;quot;&lt;br /&gt;
# Issaelfr - The frost elves live on the fringes of the habitable lands of Evrosia, the main continent of Orbivm, and have become inured to difficult conditions and tuned in to their Fae natures. They don't have a campaign yet, but you could always write one.&lt;br /&gt;
# Arendians - The Arendians are horse-lords living on the Western steppes of Evrosia. A life of constant battle has developed a military-focused society where warriors are trained from a young age. They used to have a campaign, but it fell into disrepair a very long time ago.&lt;br /&gt;
&lt;br /&gt;
'''Wiki:''' [[Orbivm]]&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=37920 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
==== Lonely Era (LE) ====&lt;br /&gt;
&lt;br /&gt;
'''Description:''' The Lonely Era is a new collection of six selected superior solitary sides with interesting and unusual abilities, traits and attributes.&lt;br /&gt;
&lt;br /&gt;
It has been extensively revised and rebalanced over the last few years from the original era and the constituent factions.&lt;br /&gt;
&lt;br /&gt;
'''Author:''' Atreides. Based on work by Shield, Desert_Shyde, Brilliand, Stern, Cloud, Grigistian, mikoc5, Stopsignal, The_Gnat, Minnakht.&lt;br /&gt;
&lt;br /&gt;
'''Maintainer:''' Atreides&lt;br /&gt;
&lt;br /&gt;
'''Status 1.16:''' Finished&lt;br /&gt;
&lt;br /&gt;
'''Faction Descriptions:'''&lt;br /&gt;
&lt;br /&gt;
1) Santa's Helpers are his Elves as well as animated pine trees. They are an updated faction based on the Merry Christmas Campaign. Beware of Elves bearing gifts though, the presents are very distracting. They are unique in not having standard levels, they each can gain up to 4 special abilities via AMLA but always remain at level 1. Of course there are also Flying Reindeer and Christmas Seals.&lt;br /&gt;
&lt;br /&gt;
2) Gremlins are an all teleporting race of elusive ethereal creatures. Individually fragile they work together using their tremendous mobility to swarm and overwhelm their enemies. Their mages are perhaps the ultimate glass cannons but if you can somehow keep one alive long enough it might even get to level 5 and become immortal.&lt;br /&gt;
&lt;br /&gt;
3) Vaeringjar are a Viking faction allied with Wolfkin. The vikings eschew ranged weapons as well as sissy ideas like dodging blows but are a very, very hardy lot. They also have a unique herbalist unit that can inspire berserker rage in adjacent vikings for a turn. The wolfkin are lithe and armed with bows and teeth on the other hand. They are also very agile in contrast to the vikings. As nocturnal hunters they are devastating at night and almost helpless in the day.&lt;br /&gt;
&lt;br /&gt;
4) Avians are cold loving, water hating bipedal birds. Their hollow bones and feathers make them vulnerable to fire and blunt weapons. They are unique in having cheap level 0 healers. Unusually their leaders are not drawn from the ranks but form a separate class only selectable as leaders. Tamed Albatrosses to patrol the awful waters.&lt;br /&gt;
&lt;br /&gt;
5) The Deep Ones - Slimy, slippery, blasphemous fish-frogs of the nameless design - living and horrible - have now been sighted on the edge of Wesnoth. Mutants who slowly evolve from human to monster these creatures are nothing to be trifled with! An all water faction they are quite capable of holding their own against the landlubbers.&lt;br /&gt;
&lt;br /&gt;
6) Jephrifs live far up in the sky, miles above land. Away from even the most basic things most other races take for granted, such as solid ground, their society developed to be quite alien indeed. In recent times, jephrifs began descending from the skies to participate in combat against other races - apparently for their own amusement, seeing life as a game.&lt;br /&gt;
&lt;br /&gt;
'''Forum:''' [//forums.wesnoth.org/viewtopic.php?t=42630 Development and Feedback Thread]&lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
See also: &lt;br /&gt;
* [[Player_UMC_Reviews|Player UMC Reviews]]&lt;br /&gt;
* [[:Category:User-made Campaigns - Walkthroughs|Walkthroughs for user-made campaigns]]&lt;br /&gt;
* [//r.wesnoth.org/t37476 forum thread] for this page&lt;br /&gt;
* [[Guide_to_UMC_Content/1.12|Guide to user-made content (UMC) for Battle for Wesnoth 1.12]]&lt;br /&gt;
* [[Guide_to_UMC_Content/1.10|Guide to user-made content (UMC) for Battle for Wesnoth 1.10]]&lt;br /&gt;
* [//r.wesnoth.org/t36733 thread discussing 1.8 UMC that wasn't ported to 1.10]&lt;br /&gt;
* [//r.wesnoth.org/t48086 thread discussing all UMC that hasn't been ported to 1.14]&lt;br /&gt;
* [//addons.wesnoth.org the addon server]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ReferenceWML&amp;diff=72147</id>
		<title>ReferenceWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ReferenceWML&amp;diff=72147"/>
		<updated>2024-01-16T18:26:59Z</updated>

		<summary type="html">&lt;p&gt;Egallager: /* Other WML tags */ be a bit more explicit about which tags go with which pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== The Wesnoth Markup Language ==&lt;br /&gt;
&lt;br /&gt;
The Wesnoth Markup Language (WML) is used to code almost everything in Wesnoth, including scenarios, units, savefiles, and the user interface layout. WML files are simple, human-readable text files, usually with the .cfg extension, with similarities to INI files and XML. A major feature in WML are macros, which are alike those found in the C language and similarily are handled by a preprocessor. Implementation-wise, WML files are handled mainly by the ''config'' class (and ''simple_wml'' in [[wesnothd]]).&lt;br /&gt;
&lt;br /&gt;
This page is a collection of pointers to different common WML structures.&lt;br /&gt;
&lt;br /&gt;
See [[BuildingScenarios]], [[BuildingCampaigns]] and [[BuildingUnits]]&lt;br /&gt;
for a tutorial style overview.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Note: this reference may contain slight inaccuracies, might not list all existing keys and tags or might contain some deprecated syntax. If you find that this reference doesn't give you the answer to how to implement some feature in WML, the most reliable way is to look at the WML code of existing units and campaigns that have done so.''&lt;br /&gt;
&lt;br /&gt;
== How WML works ==&lt;br /&gt;
&lt;br /&gt;
* [[SyntaxWML]] Description of WML syntax, and how to use variables&lt;br /&gt;
* [[PreprocessorRef]] the WML preprocessor syntax&lt;br /&gt;
* [[GrammarWML]] A more formal definition of the WML syntax. More useful for implementing a WML parser than for writing WML documents.&lt;br /&gt;
&lt;br /&gt;
== WML toplevel tags ==&lt;br /&gt;
&lt;br /&gt;
The following covers most of the possible toplevel tags in a typical main WML file. Some minor and dev-oriented tags (not intended for use by UMC) are omitted.&lt;br /&gt;
&lt;br /&gt;
* [[GameConfigWML]] the top level '''[game_config]''' tag&lt;br /&gt;
* [[UnitsWML]] the top level '''[units]''' tag&lt;br /&gt;
** [[AbilitiesWML]] a list of the different abilities a unit or weapon can have&lt;br /&gt;
** [[UnitTypeWML]] how to describe a unit type&lt;br /&gt;
** [[AnimationWML]] how to animate units&lt;br /&gt;
* [[CoreWML]] the top level '''[core]''' tag&lt;br /&gt;
* [[AddonsWML]] the entry point for an add-on module&lt;br /&gt;
** [[CampaignWML]] the top level '''[campaign]''' tag&lt;br /&gt;
*** [[CreditsWML]] how to describe the credits (the '''[about]''' tag)&lt;br /&gt;
** [[ScenarioWML]] the top level tags '''[scenario]''', '''[multiplayer]''', and '''[test]'''&lt;br /&gt;
*** [[EventWML]] how to describe an event (the '''[event]''' tag)&lt;br /&gt;
*** [[SideWML]] how to describe a side (the '''[side]''' tag)&lt;br /&gt;
*** [[MapGeneratorWML]] the random map generator&lt;br /&gt;
*** [[TimeWML]] how to describe a day&lt;br /&gt;
*** [[IntroWML]] how to describe the intro screen (the '''[story]''' and '''[part]''' tags)&lt;br /&gt;
** [[EraWML]] the top level '''[era]''' tag&lt;br /&gt;
** [[ModificationWML]] the top level '''[modification]''' and '''[resource]''' tags&lt;br /&gt;
* [[TerrainWML]] the top level '''[terrain_type]''' tag&lt;br /&gt;
* [[TerrainGraphicsWML]], the top level '''[terrain_graphics]''' tag&lt;br /&gt;
* [[ThemeWML]] the top level '''[theme]''' tag&lt;br /&gt;
* [[LanguageWML]] the top level '''[language]''' tag&lt;br /&gt;
* [[LocaleWML]] the top level '''[locale]''' tag&lt;br /&gt;
* [[HelpWML]] the top level '''[help]''' tag&lt;br /&gt;
* [[BinaryPathWML]] the top level '''[binary_path]''' tag&lt;br /&gt;
* [[FontsWML]] the top level '''[fonts]''' tag&lt;br /&gt;
* [[GettextForWesnothDevelopers#The_textdomain_tag|Textdomains]] the '''[textdomain]''' tag&lt;br /&gt;
&lt;br /&gt;
Some other files use the WML format, but with different tags.&lt;br /&gt;
&lt;br /&gt;
* [[AchievementsWML]] the [achievement_group] and [achievement] tags.&lt;br /&gt;
* [[SavefileWML]] a description of the format of savegames&lt;br /&gt;
** [[ReplayWML]] a description of the format of player actions such as moving a unit&lt;br /&gt;
** [[StatisticalScenarioWML]] used to generate statistics of a savegame&lt;br /&gt;
* [[PblWML]] a description of the format of server-uploadable campaigns&lt;br /&gt;
* [[SchemaWML]] a description of WML files that define the structure of other WML files&lt;br /&gt;
* [[DiffWML]] used to describe structural differences between preprocessed WML documents&lt;br /&gt;
* [[GUIToolkit]] creating dialogs&lt;br /&gt;
&lt;br /&gt;
== Other WML tags ==&lt;br /&gt;
&lt;br /&gt;
* [[EventWML]] how to describe an event&lt;br /&gt;
** [[FilterWML]] the construct to filter on [[StandardUnitFilter|units]], [[StandardLocationFilter|locations]], [[StandardSideFilter|sides]], weapons, vision, and WML data.&lt;br /&gt;
** [[ActionWML]] to describe the actions which occur when the event is fired&lt;br /&gt;
*** [[ConditionalActionsWML]] actions that encapsulate conditional filters and the actions to execute if the conditions are met&lt;br /&gt;
*** [[DirectActionsWML]] actions that directly affect gameplay: for example, creating a unit&lt;br /&gt;
**** [[SingleUnitWML]] how to describe a unit (for uses such as placing one on the map with the '''[unit]''' tag)&lt;br /&gt;
*** [[InternalActionsWML]] actions that WML uses internally: for example, storing a variable&lt;br /&gt;
*** [[InterfaceActionsWML]] actions that do not affect gameplay: for example, displaying a message&lt;br /&gt;
*** [[LuaWML]] how to code actions with the Lua language (BfW 1.14 and earlier)&lt;br /&gt;
*** [[LuaAPI]] how to code actions with the Lua language (BfW 1.16 and later)&lt;br /&gt;
* [[AiWML]] how to describe parameters for AI (the '''[ai]''' tag)&lt;br /&gt;
* [[EffectWML]] the construct to modify a unit (the '''[effect]''' tag)&lt;br /&gt;
* [[DescriptionWML]] the structure of WML coded menus like the difficulty chooser of campaigns&lt;br /&gt;
* [[EditorWML]] tags controlling the post-1.4 editor's behavior&lt;br /&gt;
* [[MusicListWML]] for playing music (see also [[Available Music]] for a list of what's available)&lt;br /&gt;
&lt;br /&gt;
== Predefined macros == &lt;br /&gt;
&lt;br /&gt;
Wesnoth ships with a library of predefined macros you should find useful in writing your own WML.&lt;br /&gt;
* [https://www.wesnoth.org/macro-reference.html WML Macros] - description of all such macros.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
* [[ReferenceWMLSyntax]] how this wiki and the pages it links to should be formatted&lt;br /&gt;
* [[ConventionsWML]] how to make your WML more readable&lt;br /&gt;
* [[Wml_optimisation]] how to make your WML code more efficient&lt;br /&gt;
* [[UsefulWMLFragments]] Various pieces of WML for various purposes. If you have some WML you're proud of that you think others can use, add it here.&lt;br /&gt;
* [[Maintenance tools]] for wmlindent, wmllint, wmlscope&lt;br /&gt;
* [[CommandMode]] commands are not strictly speaking part of WML, but they are useful for debugging it, and could be a little hard to find, so linking to them here makes sense.&lt;br /&gt;
* [[MultiplayerServerWML]] is used when communicating with the multiplayer server.&lt;br /&gt;
* [[CampaignServerWML]] is used when managing contributed campaigns on the campaign server.&lt;br /&gt;
* [[ImagePathFunctions]] (IPFs) are used when applying the color function to images, such as marking units as belonging to a team or in TerrainGraphics.&lt;br /&gt;
* [[Pango formatting]] shows ways to enrich descriptions (pango markup, which can generate basic html tags like &amp;lt;nowiki&amp;gt;&amp;lt;b&amp;gt;, &amp;lt;i&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt; and others).&lt;br /&gt;
* [[Wesnoth_Formula_Language]] (WFL) often used with $() formulas.&lt;br /&gt;
* [[PreprocessorRef|Syntax of preprocessor mini-language]] : symbols, macros, file inclusions...&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[BuildingMaps]] the text-based format for Wesnoth maps&lt;br /&gt;
* [[TerrainCodeTableWML]] a list of all terrains, and [[TerrainCodesWML]], on how to use them&lt;br /&gt;
* [[MultiHexTutorial]] a description of the multi-hex tiling system&lt;br /&gt;
* [[IGNFileFormat]] a description of the ignore file format&lt;br /&gt;
* [[CompatibilityStandards#Deprecation_levels_-_When_to_remove_deprecated_features|DeprecationLevels]]&lt;br /&gt;
* Back to [[Create]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Egallager</name></author>
		
	</entry>
</feed>