<?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=Ken+Oh</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=Ken+Oh"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Ken_Oh"/>
	<updated>2026-04-04T13:44:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=38464</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=38464"/>
		<updated>2010-09-19T16:51:07Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband (v0.4.0, Wesnoth 1.8.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. In the end, I hope to make a fun game that really hasn't been done before: a multiplayer, turn-based dungeon crawler. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has changed a lot under the surface. I've taken NPCs and structured their internal workings just like PCs. This results in a lot of flexibility, variability and NPCs can even level past their normal max level while still gaining appropriate skills and stats. Exasperation has included a lot of Lua functions, new to Wesnoth, which make a lot of things available that were once impossible. For one, there is a chat output that gives the players information without making them click to clear it. Exasperation has also, employing Lua, made the dungeon creation faster and the rousing code is awesome. Players only rouse enemies once they &amp;quot;see&amp;quot; the player or his henchmen. This results in much faster gameplay than before. Oh, and almost as an afterthought, Exasperation expanded the player sides to 4 now. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Woodsman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.2.3, currently integrated in Wesband) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
The Modular RPG era system has been integrated within Wesband. There were problems with keeping it as an era in a multi-scenario campaign, and it just became too complex to maintain for other users' RPG scenarios. If I ever get around to making my WesSaga idea, I can easily lift all of the Modular RPG content and settings into Wesband. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
As far as an era goes, MODRPG is incredibly robust. There are many different items, weapons, abilities, weapon specials and spells from which to choose. Most exciting are all the different races. With humans, elves, dwarves, trolls, saurians, goblins, and orcs, we've included every major land-dwelling Wesnothian race except for drakes. We're really just waiting on new drake sprite art to be finished before we adjust the sprites and try to include them. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 You can find it in Wesband]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits and Knights of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns. I think when I do try to make this, I will start very small, in both concept and mapping, and move on from there.&lt;br /&gt;
&lt;br /&gt;
== Assassin in the Forest (v2, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Elvish Pillager once made a scenario that I've never played, but I heard about it from someone who bumped [http://www.wesnoth.org/forum/viewtopic.php?f=12&amp;amp;t=27143 a really old thread]. The concept seemed fun and easy to do, plus I needed a break from Wesband. (I tried to get his blessing, but he doesn't answer PMs and hasn't been in the irc room since a month of writing this).&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I took part of one morning and made it with a beefed up Assassin. Here are some extra abilities that he has:&lt;br /&gt;
-conceals&lt;br /&gt;
-nightstalk&lt;br /&gt;
-sneak (use no more than half of max moves to stay hidden)&lt;br /&gt;
-slash&amp;amp;dash (can use remaining moves after attacking with melee, each hit with melee adds 1 move)&lt;br /&gt;
-remaining ammo (if you kill your opponent with your throwing daggers, any strikes left can be used and you can attack again).&lt;br /&gt;
&lt;br /&gt;
It's kind of fun, though there are some problems: you're a little useless at the beginning, as the AI destroys each other quicker than you can do anything, and the only real thing you can do is make sure one leader doesn't get so strong that you won't be able to beat him by yourself.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm pretty much done with this. It was a fun distraction. If anyone wants to do anything with it, be my guest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examplenoth ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
I always thought the WML Wiki would be a little better if it had more examples. This is one thing I've done in the past: http://wiki.wesnoth.org/WML_Abilities but I think we could go further with this. It's a shame I'm too busy writing WML that I'm going to actually use to even update the link above. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== You're Making Up WML ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
Every once in a while, a new user posts WML with completely made-up syntax in the WML Workshop. A collection of these would be funny (if nothing else), but the page could be useful as a guide to help those users who post such things understand the problem and stop doing it. &lt;br /&gt;
&lt;br /&gt;
Anyway, here are a few links to get me started:&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=29468&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=27732&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?p=429082#p429082&lt;br /&gt;
&lt;br /&gt;
== The High Seas: Full Sail (none released, Wesnoth 1.7.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
During getting bogged down coding Wesband, I started thinking about another project, a way to expand the concept of Bob_the_Mighy's The High Seas. What I wanted to do is make every hex be able to have a larger representation. It would be like TL's Imperium mod http://forums.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21096 . There would be overworld units (usually ships) and then zoomed-in spaces where the actual battle takes place. That way, ships could connect and units could board during naval battles. Another inspiration is Ultima Exodus: http://3.bp.blogspot.com/_zeqtPE3M1ro/S32fF71Q8zI/AAAAAAAABxU/s65iNbRO0aU/s1600-h/ship1.png http://2.bp.blogspot.com/_zeqtPE3M1ro/S32fO9lvNqI/AAAAAAAABxc/rcb6KjWnae8/s1600-h/ship2.png&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I built some maps and some prototype ships and came up with a bunch of concepts. My favorite was how a kraken could attack ships directly, on the overworld view, but then tentacles could try to grab sailors and drag them into the sea. Another key element that would represent naval scenarios is how ships could view further than their movement, and all viewing would be uniform (something like 12 hexes?). Another improvement is to root it in Wesnoth's world. I made a map that was the west coast of the Great Continent and extended west to the Green Isle (now over-run by pirate Liches). The &amp;quot;era&amp;quot; would be before the fall of Wesnoth, when naval tech got to the point where they were able to rediscover the Green Isle.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some problems with how all this would work with Wesnoth's gameplay. Most of all, how hexes would connect to each other. I can't even remember now what the problem was, but I decided I had recharged my batteries enough for Wesband. I also realized how great a project Wesband is, and that I should really finish it. &lt;br /&gt;
&lt;br /&gt;
== Diplomatic-noth (concept) ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
This is a very old idea that I came up with: Wesnoth with a diplomatic slant. Majorly inspired from the Romance of the Three Kingdoms games, the map would be divided into regions that could be owned. The computer AI would mostly enforce this. Diplomatic arrangements would set up the AI's assessments of you as a player and a nation. Each AI would see your perceived strength, threat and trustworthiness (amongst other factors). And, while each AI would try to advance their own cause, they would constantly try to balance the line of not being too aggressive. Basically, if a player tried to play like you do in vanilla Wesnoth, the FFA way of doing things, that player would be perceived as highly threatening and not worthy of trust, and thus would get ganged-up on by the AI. However, even if the player plays nice with the other remaining sides but amasses a ton of power, the threat level gets too high and the remaining sides would have to ally to stay alive. Winning wouldn't be as simple as picking off each enemy one at a time. The main problem I have in the concept is whether or not fog should be enabled. Being able to hide things from other sides would add a lot, but having absolutely no info of the enemy wouldn't work at all. Other ideas that came to mind: Spies, which could be invisible to enemies. Diplomats, which would stay in allied side terrain and benefit them somehow. The other major issue is how to make AI adhere to the rules that it's going to set for everyone else.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=38462</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=38462"/>
		<updated>2010-09-19T14:34:49Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband (v0.4.0, Wesnoth 1.8.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. In the end, I hope to make a fun game that really hasn't been done before: a multiplayer, turn-based dungeon crawler. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has changed a lot under the surface. I've taken NPCs and structured their internal workings just like PCs. This results in a lot of flexibility, variability and NPCs can even level past their normal max level while still gaining appropriate skills and stats. Exasperation has included a lot of Lua functions, new to Wesnoth, which make a lot of things available that were once impossible. For one, there is a chat output that gives the players information without making them click to clear it. Exasperation has also, employing Lua, made the dungeon creation faster and the rousing code is awesome. Players only rouse enemies once they &amp;quot;see&amp;quot; the player or his henchmen. This results in much faster gameplay than before. Oh, and almost as an afterthought, Exasperation expanded the player sides to 4 now. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Woodsman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.2.3, currently integrated in Wesband) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
The Modular RPG era system has been integrated within Wesband. There were problems with keeping it as an era in a multi-scenario campaign, and it just became too complex to maintain for other users' RPG scenarios. If I ever get around to making my WesSaga idea, I can easily lift all of the Modular RPG content and settings into Wesband. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
As far as an era goes, MODRPG is incredibly robust. There are many different items, weapons, abilities, weapon specials and spells from which to choose. Most exciting are all the different races. With humans, elves, dwarves, trolls, saurians, goblins, and orcs, we've included every major land-dwelling Wesnothian race except for drakes. We're really just waiting on new drake sprite art to be finished before we adjust the sprites and try to include them. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 You can find it in Wesband]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns.&lt;br /&gt;
&lt;br /&gt;
== Assassin in the Forest (v2, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Elvish Pillager once made a scenario that I've never played, but I heard about it from someone who bumped [http://www.wesnoth.org/forum/viewtopic.php?f=12&amp;amp;t=27143 a really old thread]. The concept seemed fun and easy to do, plus I needed a break from Wesband. (I tried to get his blessing, but he doesn't answer PMs and hasn't been in the irc room since a month of writing this).&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I took part of one morning and made it with a beefed up Assassin. Here are some extra abilities that he has:&lt;br /&gt;
-conceals&lt;br /&gt;
-nightstalk&lt;br /&gt;
-sneak (use no more than half of max moves to stay hidden)&lt;br /&gt;
-slash&amp;amp;dash (can use remaining moves after attacking with melee, each hit with melee adds 1 move)&lt;br /&gt;
-remaining ammo (if you kill your opponent with your throwing daggers, any strikes left can be used and you can attack again).&lt;br /&gt;
&lt;br /&gt;
It's kind of fun, though there are some problems: you're a little useless at the beginning, as the AI destroys each other quicker than you can do anything, and the only real thing you can do is make sure one leader doesn't get so strong that you won't be able to beat him by yourself.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm pretty much done with this. It was a fun distraction. If anyone wants to do anything with it, be my guest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examplenoth ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
I always thought the WML Wiki would be a little better if it had more examples. This is one thing I've done in the past: http://wiki.wesnoth.org/WML_Abilities but I think we could go further with this. It's a shame I'm too busy writing WML that I'm going to actually use to even update the link above. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== You're Making Up WML ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
Every once in a while, a new user posts WML with completely made-up syntax in the WML Workshop. A collection of these would be funny (if nothing else), but the page could be useful as a guide to help those users who post such things understand the problem and stop doing it. &lt;br /&gt;
&lt;br /&gt;
Anyway, here are a few links to get me started:&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=29468&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=27732&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?p=429082#p429082&lt;br /&gt;
&lt;br /&gt;
== The High Seas: Full Sail (none released, Wesnoth 1.7.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
During getting bogged down coding Wesband, I started thinking about another project, a way to expand the concept of Bob_the_Mighy's The High Seas. What I wanted to do is make every hex be able to have a larger representation. It would be like TL's Imperium mod http://forums.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21096 . There would be overworld units (usually ships) and then zoomed-in spaces where the actual battle takes place. That way, ships could connect and units could board during naval battles. Another inspiration is Ultima Exodus: http://3.bp.blogspot.com/_zeqtPE3M1ro/S32fF71Q8zI/AAAAAAAABxU/s65iNbRO0aU/s1600-h/ship1.png http://2.bp.blogspot.com/_zeqtPE3M1ro/S32fO9lvNqI/AAAAAAAABxc/rcb6KjWnae8/s1600-h/ship2.png&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I built some maps and some prototype ships and came up with a bunch of concepts. My favorite was how a kraken could attack ships directly, on the overworld view, but then tentacles could try to grab sailors and drag them into the sea. Another key element that would represent naval scenarios is how ships could view further than their movement, and all viewing would be uniform (something like 12 hexes?). Another improvement is to root it in Wesnoth's world. I made a map that was the west coast of the Great Continent and extended west to the Green Isle (now over-run by pirate Liches). The &amp;quot;era&amp;quot; would be before the fall of Wesnoth, when naval tech got to the point where they were able to rediscover the Green Isle.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some problems with how all this would work with Wesnoth's gameplay. Most of all, how hexes would connect to each other. I can't even remember now what the problem was, but I decided I had recharged my batteries enough for Wesband. I also realized how great a project Wesband is, and that I should really finish it. &lt;br /&gt;
&lt;br /&gt;
== Diplomatic-noth (concept) ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
This is a very old idea that I came up with: Wesnoth with a diplomatic slant. Majorly inspired from the Romance of the Three Kingdoms games, the map would be divided into regions that could be owned. The computer AI would mostly enforce this. Diplomatic arrangements would set up the AI's assessments of you as a player and a nation. Each AI would see your perceived strength, threat and trustworthiness (amongst other factors). And, while each AI would try to advance their own cause, they would constantly try to balance the line of not being too aggressive. Basically, if a player tried to play like you do in vanilla Wesnoth, the FFA way of doing things, that player would be perceived as highly threatening and not worthy of trust, and thus would get ganged-up on by the AI. However, even if the player plays nice with the other remaining sides but amasses a ton of power, the threat level gets too high and the remaining sides would have to ally to stay alive. Winning wouldn't be as simple as picking off each enemy one at a time. The main problem I have in the concept is whether or not fog should be enabled. Being able to hide things from other sides would add a lot, but having absolutely no info of the enemy wouldn't work at all. Other ideas that came to mind: Spies, which could be invisible to enemies. Diplomats, which would stay in allied side terrain and benefit them somehow.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SideWML&amp;diff=36774</id>
		<title>SideWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SideWML&amp;diff=36774"/>
		<updated>2010-06-15T13:45:35Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: Multiplayer server rejects entering a scenario with more than 9 sides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== the [side] tag ==&lt;br /&gt;
&lt;br /&gt;
The [side] tag is used to describe a side in a particular scenario.&lt;br /&gt;
&lt;br /&gt;
The following keys are recognized:&lt;br /&gt;
&lt;br /&gt;
* '''side''': a number. The leader of this side is placed on the tile represented by this number (see [[BuildingMaps]]). When defining sides, they must be defined in order since the side number is checked against the number of sides seen so far. Currently, the Multiplayer server rejects entering a scenario with more than 9 sides, even if those extra sides are AI sides. &lt;br /&gt;
&lt;br /&gt;
* '''controller''': how moves for this side should be inputted.&lt;br /&gt;
** '''ai''': the Wesnoth AI makes this side's moves. This is the default setting.&lt;br /&gt;
** '''human''': a player controls this side's moves.&lt;br /&gt;
** '''null''': the side doesn't get a turn to move and doesn't have a leader generated from the contents of the [side] tag. (It still can get units from [unit] tags in the [side] tag.)&lt;br /&gt;
&lt;br /&gt;
* '''no_leader''': if &amp;quot;no&amp;quot; (default), then keys describing a unit which will begin on the side's keep will be the remainder of the '''[side]''' tag, See [[SingleUnitWML]]. Note that if the keys '''x''', '''y''' are included, the leader will begin there regardless of keep location. If this side has a recall list from a previous level, then the recall list will be searched for a leader (using '''canrecruit=yes''') and if one is found it will be used instead of the one described in the '''[side]''' tag. Typical keys used for defining the leader unit are '''type''' (mandatory), '''id''', '''name''' and '''unrenamable=yes''', see [[SingleUnitWML]].&lt;br /&gt;
&lt;br /&gt;
* '''recruit''': a list of unit types. At the beginning of the scenario, the side gains recruitment of these units.&lt;br /&gt;
&lt;br /&gt;
* '''gold''': the starting gold for this side. Default 100. (If gold is carried over from a previous scenario, this value is the minimum starting gold.)&lt;br /&gt;
&lt;br /&gt;
* '''income''': the base income for this side, default 0. This is added to ''base_income'', '''[game_config]''' to determine the side's base income. (see [[GameConfigWML]]).&lt;br /&gt;
&lt;br /&gt;
* '''hidden''': if 'yes', side is not shown in status table.&lt;br /&gt;
&lt;br /&gt;
* '''fog''': if 'yes', this side cannot see any tiles it is not within vision of, except at the start. Please note that the AI currently ignores the fog.&lt;br /&gt;
&lt;br /&gt;
* '''shroud''': if 'yes', this side cannot see any tiles it has not moved within sight of. Please note that the AI currently ignores the shroud. NOTE: with shroud=no, this team *ignores* shroud, so it is not possible to modify it using place_shroud and remove_shroud tags. If you want to do so, use &amp;quot;shroud=yes&amp;quot; and place_shroud/remove_shroud tags.&lt;br /&gt;
&lt;br /&gt;
* '''shroud_data''': describes the area which this team has de-shrouded. An example:&lt;br /&gt;
 |&lt;br /&gt;
 |00011111000&lt;br /&gt;
This would leave the first column on the map unaltered and would change the second column for 11 tiles. A '0' means: shrouded, '1' means unshrouded. You can either call an external file using {@filename}  (see [[PreprocessorRef]]) or place the data in quotes. For making an external file see [[BuildingScenariosShroudData]].&lt;br /&gt;
&lt;br /&gt;
* '''persistent''': whether the side exists in any other scenarios. If '1'(yes), then ''save_id''(see below) is used to identify the side in other scenarios. Default '1'(yes) for sides with a human controller, '0'(no) for ai controlled sides.&lt;br /&gt;
&lt;br /&gt;
* '''save_id''': default ''description'' if available, 'Unknown' otherwise. The ID of the side with respect to the previous and next scenarios. Used to carry over the side's recall list (including the side's leader), recruitment list, and starting gold from scenario to scenario. Also used for the side's displayed name in the victory gold-calculation dialog. (For versions prior to 1.7.3, some extra effort to retrieve carryover information may be needed. See [[SideSwitchingWML]])&lt;br /&gt;
&lt;br /&gt;
* '''team_name''': a non translatable string representing the team's description. Sides with the same team_name are allied. Default ''side''. {{DevFeature}} ''team_name'' is now a comma-separated list of teams that the side is on.&lt;br /&gt;
&lt;br /&gt;
* '''user_team_name''': a translatable string representing the team's description. This has no effect on alliances. Default ''team_name''.&lt;br /&gt;
&lt;br /&gt;
* '''colour''': May be either a numeric color index or a color name (e.g. 'blue', 'purple', 'orange', etc.).  The numeric form is deprecated. The default list of numbers and corresponding colours can be found in data/core/team_colors.cfg.&lt;br /&gt;
&lt;br /&gt;
* '''flag''': a custom flag animation to use instead of the default one to mark captured villages. An automatic side-coloring is applied.&lt;br /&gt;
** Example animation that has three frames and loops every 750ms: ''flag=misc/myflag-1.png:250,misc/myflag-2.png:250,misc/myflag-3.png:250''&lt;br /&gt;
&lt;br /&gt;
* '''flag_icon''': a custom flag icon to indicate the side playing in the statusbar (a size of 24x16 is recommended). An automatic side-coloring is applied.&lt;br /&gt;
&lt;br /&gt;
* '''village_gold''': the amount of gold given to this side per village it controls per turn. Default specified in ''village_income'', '''[game_config]''' ([[GameConfigWML]]).&lt;br /&gt;
&lt;br /&gt;
* '''recall_cost''': the amount of gold it costs to recall a unit. Default specified in ''recall_cost'', '''[game_config]''' ([[GameConfigWML]]). {{DevFeature1.9}}&lt;br /&gt;
&lt;br /&gt;
* '''share_maps''': whether sides allied with this side see all terrains that this side sees, if they are on shroud.&lt;br /&gt;
&lt;br /&gt;
* '''share_view''': whether sides allied with this side see the units that this side sees, if they are on FoW (fog).&lt;br /&gt;
&lt;br /&gt;
* '''disallow_observers''': prevents observers from seeing this side turn. (default: no)&lt;br /&gt;
&lt;br /&gt;
* '''scroll_to_leader''': optional. If 'no', scroll to the leader is not performed on the start of each turn. (default: yes) {{DevFeature1.9}}&lt;br /&gt;
&lt;br /&gt;
* '''[ai]''' if '''controller=ai''', gives parameters to the AI. See [[AiWML]].&lt;br /&gt;
&lt;br /&gt;
* '''[village]''' describes a village the side begins in control of.&lt;br /&gt;
** ''x'', ''y'' the location of the village. If the pair of coordinates is not a village or is duplicated in another [village] tag, behaviour is undefined. Recent game engine or wmllint should warn about these.&lt;br /&gt;
&lt;br /&gt;
* '''[unit]''' describes a unit which begins on the side. See [[SingleUnitWML]]. If the side has a recall list and the unit is not given a location, it will start on the recall list. Note that the ''side'' attribute under '''[unit]''' will be ignored, as the side will come from the ''side'' attribute of '''[side]'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following keys are multiplayer only:&lt;br /&gt;
&lt;br /&gt;
* '''allow_player''': if false then this side will not be allowed to be modified and will be hidden during game creation.&lt;br /&gt;
&lt;br /&gt;
* '''team_lock''': if true then this side's team is not allowed to be modified.&lt;br /&gt;
&lt;br /&gt;
* '''colour_lock''': if true then this side's color is not allowed to be modified.&lt;br /&gt;
&lt;br /&gt;
* '''gold_lock''': if true then this side's gold is not allowed to be modified. &lt;br /&gt;
&lt;br /&gt;
* '''income_lock''': if true then this side's income is not allowed to be modified.&lt;br /&gt;
&lt;br /&gt;
* '''faction''': this lock this side to this faction.&lt;br /&gt;
&lt;br /&gt;
* '''faction_from_recruit''': if true then this side will be locked to the faction that matches the recruits better.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[EraWML]]&lt;br /&gt;
* [[ScenarioWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=36759</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=36759"/>
		<updated>2010-06-12T20:25:26Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband (v0.4.0, Wesnoth 1.8.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. In the end, I hope to make a fun game that really hasn't been done before: a multiplayer, turn-based dungeon crawler. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has changed a lot under the surface. I've taken NPCs and structured their internal workings just like PCs. This results in a lot of flexibility, variability and NPCs can even level past their normal max level while still gaining appropriate skills and stats. Exasperation has included a lot of Lua functions, new to Wesnoth, which make a lot of things available that were once impossible. For one, there is a chat output that gives the players information without making them click to clear it. Exasperation has also, employing Lua, made the dungeon creation faster and the rousing code is awesome. Players only rouse enemies once they &amp;quot;see&amp;quot; the player or his henchmen. This results in much faster gameplay than before. Oh, and almost as an afterthought, Exasperation expanded the player sides to 4 now. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Woodsman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.2.3, currently integrated in Wesband) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
The Modular RPG era system has been integrated within Wesband. There were problems with keeping it as an era in a multi-scenario campaign, and it just became too complex to maintain for other users' RPG scenarios. If I ever get around to making my WesSaga idea, I can easily lift all of the Modular RPG content and settings into Wesband. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
As far as an era goes, MODRPG is incredibly robust. There are many different items, weapons, abilities, weapon specials and spells from which to choose. Most exciting are all the different races. With humans, elves, dwarves, trolls, saurians, goblins, and orcs, we've included every major land-dwelling Wesnothian race except for drakes. We're really just waiting on new drake sprite art to be finished before we adjust the sprites and try to include them. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 You can find it in Wesband]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns.&lt;br /&gt;
&lt;br /&gt;
== Assassin in the Forest (v2, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Elvish Pillager once made a scenario that I've never played, but I heard about it from someone who bumped [http://www.wesnoth.org/forum/viewtopic.php?f=12&amp;amp;t=27143 a really old thread]. The concept seemed fun and easy to do, plus I needed a break from Wesband. (I tried to get his blessing, but he doesn't answer PMs and hasn't been in the irc room since a month of writing this).&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I took part of one morning and made it with a beefed up Assassin. Here are some extra abilities that he has:&lt;br /&gt;
-conceals&lt;br /&gt;
-nightstalk&lt;br /&gt;
-sneak (use no more than half of max moves to stay hidden)&lt;br /&gt;
-slash&amp;amp;dash (can use remaining moves after attacking with melee, each hit with melee adds 1 move)&lt;br /&gt;
-remaining ammo (if you kill your opponent with your throwing daggers, any strikes left can be used and you can attack again).&lt;br /&gt;
&lt;br /&gt;
It's kind of fun, though there are some problems: you're a little useless at the beginning, as the AI destroys each other quicker than you can do anything, and the only real thing you can do is make sure one leader doesn't get so strong that you won't be able to beat him by yourself.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm pretty much done with this. It was a fun distraction. If anyone wants to do anything with it, be my guest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examplenoth ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
I always thought the WML Wiki would be a little better if it had more examples. This is one thing I've done in the past: http://wiki.wesnoth.org/WML_Abilities but I think we could go further with this. It's a shame I'm too busy writing WML that I'm going to actually use to even update the link above. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== You're Making Up WML ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
Every once in a while, a new user posts WML with completely made-up syntax in the WML Workshop. A collection of these would be funny (if nothing else), but the page could be useful as a guide to help those users who post such things understand the problem and stop doing it. &lt;br /&gt;
&lt;br /&gt;
Anyway, here are a few links to get me started:&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=29468&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=27732&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?p=429082#p429082&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DirectActionsWML&amp;diff=36527</id>
		<title>DirectActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DirectActionsWML&amp;diff=36527"/>
		<updated>2010-05-21T16:35:36Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: [filter] needed for (un)petrify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== Direct actions ==&lt;br /&gt;
&lt;br /&gt;
Direct actions are actions that have a direct effect on gameplay.&lt;br /&gt;
&lt;br /&gt;
The following tags are actions:&lt;br /&gt;
* '''[endlevel]''': ends the scenario.&lt;br /&gt;
** '''result''': before the scenario is over, all events with ''name=result'' are triggered.  The message ''result_message'' with the heading ''result_heading'' (see [[LanguageWML]]) are displayed.  If ''result=victory'', the player progresses to the next level; if ''result=defeat'', the game returns to the main menu.  These last two are rarely used: ''result=continue'' behaves identically to ''result=victory'' except the player's gold is not reduced to 80%, and it does not bring up a &amp;quot;Victory&amp;quot; message or the gold changing message (since it doesn't change); ''result=continue_no_save'' works similarly, except the player is not asked whether to save the game, and is taken directly to the next scenario without any messages. {{DevFeature}}: All values for result=... except victory and defeat are being discarded in favor of modifying '''[endlevel]''' behaviour with single keys.&lt;br /&gt;
Unless ''result=defeat'', the following keys can also be used:&lt;br /&gt;
** '''bonus''': whether the player should get bonus gold (maximum possible gold that could have been earned by waiting the level out). The default is bonus=yes.&lt;br /&gt;
** '''carryover_report''': whether the player should receive a summary of the scenario outcome, the default is carryover_report=yes.&lt;br /&gt;
** '''save''': whether a start-of-scenario save should be created for the next scenario, the default is save=yes.&lt;br /&gt;
** '''linger_mode''': If ...=yes, the screen is greyed out and there's the possibility to save before advancing to the next scenario, the default is linger_mode=yes.&lt;br /&gt;
** '''next_scenario''': (default specified in '''[scenario]''' tag) the ID of the next scenario that should be played.  All units that side 1 controls at this point become available for recall in ''next_scenario''.&lt;br /&gt;
** When the result is &amp;quot;victory&amp;quot; the following keys can be used:&lt;br /&gt;
*** '''carryover_percentage''': by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.&lt;br /&gt;
*** '''carryover_add''': if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.&lt;br /&gt;
** '''music''': (default specified in '''[scenario]''' or '''[game_config]''' tags) a comma-separated list of music tracks from which one will be chosen and played once after any events related to the end of level result are executed; by default, victory_music is used on victory, and defeat_music on defeat.&lt;br /&gt;
** '''end_text''': Text that is shown centered in a black screen at the end of a campaign. Defaults to &amp;quot;The End&amp;quot;. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].&lt;br /&gt;
** '''end_text_duration''': Delay, in milliseconds, before displaying the game credits at the end of a campaign. In other words, for how much time '''end_text''' is displayed on screen. Defaults to 3500. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].&lt;br /&gt;
* '''[unit]''': places a unit on the map.  For syntax see [[SingleUnitWML]].&lt;br /&gt;
** {{Short Note:Predefined Macro|GENERIC_UNIT}}&lt;br /&gt;
** '''to_variable''':  spawn directly into a variable instead of on the map.&lt;br /&gt;
* '''[recall]''': recalls a unit.  The unit is recalled free of charge, and is placed near the leader.&lt;br /&gt;
** [[StandardUnitFilter]]: the first matching unit will be recalled.  If no units match this tag is ignored. Do not use a [filter] tag. If a comma separated list is given, every unit currently considered for recall is checked against all the types (not each single one of the types against all units).&lt;br /&gt;
** '''x,y''': the unit is placed here instead of next to the leader.&lt;br /&gt;
** '''show''': yes/no, default yes: whether the unit is animated (faded in) or instantly displayed&lt;br /&gt;
* '''[teleport]''': teleports a unit on map. {{Short Note:Predefined Macro|TELEPORT_UNIT}}&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] all units matching the filter will be teleported.&lt;br /&gt;
** '''x,y''': the position to teleport to.&lt;br /&gt;
** '''clear_shroud''': should shroud be cleared on arrival&lt;br /&gt;
** '''animate''': should a teleport animation be played (if the unit doesn't have a teleport animation, it will fade out/fade in)&lt;br /&gt;
** '''ignore_passability''': {{DevFeature}} normally, units will not be teleported into terrain that is impassable for them. Setting this attribute to &amp;quot;yes&amp;quot; permits it.&lt;br /&gt;
* '''[terrain_mask]''': changes the terrain on the map.  See [[TerrainMaskWML]].&lt;br /&gt;
* '''[terrain]''': changes the terrain on the map.&lt;br /&gt;
** '''terrain''': the character of the terrain to use.  See [[TerrainCodesWML]] to see what letter a type of terrain uses.&lt;br /&gt;
** '''x,y''': the position (or range of positions) to change.&lt;br /&gt;
** '''layer''': (overlay|base|both, default=both) only change the specified layer.&lt;br /&gt;
** '''replace_if_failed''': (default=no) When replacing just one layer failed, try to replace the whole terrain. If '''terrain''' is an overlay only terrain, use the default_base as base layer. If the terrain has no default base, do nothing.&lt;br /&gt;
* '''[gold]''': give one side gold.&lt;br /&gt;
** '''amount''': the amount of gold to give.&lt;br /&gt;
** '''side''': (default=1) the number of the side to give the gold to.&lt;br /&gt;
* '''[unstore_unit]''': creates a unit from a game variable, and activates it on the playing field.  This must be a specific variable describing a unit, and may not be an array -- to unstore an entire array, iterate over it.  The variable is not cleared.  See also [[InternalActionsWML#.5Bstore_unit.5D|[store_unit]]], [[ConditionalActionsWML#.5Bwhile.5D|[while]]] and [[InternalActionsWML#.5Bclear_variable.5D|[clear_variable]]]. Note units with a negative amount of hitpoints will be unstored with 1 hitpoint.&lt;br /&gt;
** '''variable''': the name of the variable.&lt;br /&gt;
** '''find_vacant''': whether the unit should be placed on the nearest vacant tile to its specified location.  If this is set to 'no'(default), then any unit on the same tile as the unit being unstored will be destroyed.&lt;br /&gt;
** '''text''': (translatable) floating text to display above the unit, such as a damage amount&lt;br /&gt;
** '''red''', '''green''', '''blue''': (default=0,0,0) the color to display the text in. Values vary from 0-255. You may find it convenient to use the {COLOR_HARM} or {COLOR_HEAL} macro instead. (Use {COLOR_HARM} or {COLOR_HEAL} instead of the whole red,green,blue= line.)&lt;br /&gt;
** '''advance''': (default=true) if true the unit is advanced if it has enough XP. When modifying XP make sure to do it from inside a [[EventWML#Multiplayer_safety|synchronized event]] or it may lead to OOS errors especially when several advancement paths exist.&lt;br /&gt;
** '''x''' ,'''y''': override unit location&lt;br /&gt;
* '''[allow_recruit]''': allows a side to recruit units it couldn't previously recruit.&lt;br /&gt;
** '''type''': the types of units that the side can now recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that is being allowed to recruit the units.&lt;br /&gt;
* '''[disallow_recruit]''': prevents a side from recruiting units it could previously recruit.&lt;br /&gt;
** '''type''': the types of units that the side can no longer recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that may no longer recruit the units.&lt;br /&gt;
* '''[set_recruit]''': sets the units a side can recruit.&lt;br /&gt;
** '''recruit''': the types of units that the side can now recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that is having its recruitment set.&lt;br /&gt;
* '''[modify_side]''': modifies some details of a given side in the middle of a scenario.  '''The following listed properties are the only properties that [modify_side] can affect!'&lt;br /&gt;
** '''side''': (default=1) the number of the side that is to be changed.&lt;br /&gt;
** '''income''': the income given at the begining of each turn.&lt;br /&gt;
** '''team_name''': the team in which the side plays the scenario.&lt;br /&gt;
** '''user_team_name''': a translatable string representing the team's description. This has no effect on alliances. Defaults to ''team_name''.&lt;br /&gt;
** '''gold''': the amount of gold the side owns.&lt;br /&gt;
** '''village_gold''': the income setting per village for the side.&lt;br /&gt;
** '''controller''': the identifier string of the side's controller. Uses the same syntax of the ''controller'' key in the [[SideWML|[side]]] tag.&lt;br /&gt;
** '''fog''': a boolean string (yes/no) describing the status of Fog for the side.&lt;br /&gt;
** '''shroud''': a boolean string describing the status of Shroud for the side.&lt;br /&gt;
** '''hidden''': a boolean string specifying whether side is shown in status table.&lt;br /&gt;
** '''[ai]''': replaces a side's AI parameters with the new specified ones. Uses the same syntax described in [[AiWML]].&lt;br /&gt;
** '''switch_ai''': {{DevFeature}} replaces a side ai with a new AI from specified file(ignoring those AI parameters above). Path to file follows the usual WML convention.&lt;br /&gt;
** '''share_maps''': {{DevFeature}} change the share_maps side attribute. Be sure to use shroud=yes for that side and have it as an ally&lt;br /&gt;
** '''share_view''': {{DevFeature}} change the share_view side attribute. Be sure to use fog=yes for that side and have it as an ally&lt;br /&gt;
* '''[modify_turns]''': modifies the turn limit in the middle of a scenario.&lt;br /&gt;
** '''value''': the new turn limit.&lt;br /&gt;
** '''add''': if used instead of ''value'', specifies the number of turns to add to the current limit (can be negative).&lt;br /&gt;
** '''current''': changes the current turn number after applying turn limit modifications, if any. It is possible to change the current turn number to a greater one than the current only; also, it is not possible to change the turn number to exceed the turn limit.&lt;br /&gt;
* '''[capture_village]''': changes the ownership of a village.&lt;br /&gt;
** '''side''': the side that takes control of the village. This side needs to have a leader (canrecruit=yes). If the side key is not given, the village will become neutral.&lt;br /&gt;
** '''x, y''': the location of the village.&lt;br /&gt;
* '''[kill]''': Removes all units (including units in a recall list) that match the filter from the game.&lt;br /&gt;
** [[StandardUnitFilter]]: Selection criterion; do not use a [filter] tag.&lt;br /&gt;
** '''animate''': if 'yes', displays the unit dying (fading away).&lt;br /&gt;
** '''fire_event''': if 'yes', triggers any appropriate 'die' events (See [[EventWML]]). Note that any 'last breath' and 'die' events triggered by this are executed immediately, interrupting the current event and thus causing the x1, y1, x2, and y2 variables to be reset for that 'die' event, which in turn causes those variables to be invalid for the remainder of this event.&lt;br /&gt;
* '''[petrify]''': Petrifies all units that match the filter. In 1.6 and earlier this is '''[stone]'''.&lt;br /&gt;
** '''[filter]''' with a [[StandardUnitFilter]] as argument. If no unit matches the filter, then nothing happens (probably).  If absent, all units on the map are petrified.&lt;br /&gt;
* '''[unpetrify]''': Unpetrifies all units that match the filter. In 1.6 and earlier this is '''[unstone]'''.&lt;br /&gt;
** '''[filter]''' with a [[StandardUnitFilter]] as argument. If no unit matches the filter, then nothing happens (probably).  If absent, all units on the map are unpetrified.&lt;br /&gt;
* '''[object]''': gives some unit an object and removes all items on the tile the unit is on.&lt;br /&gt;
** '''id''': (Optional) when the object is picked up, a flag is set for ''id''.  The object cannot be picked up if a flag for ''id'' has been set.  This means that any object with an id can only be used once, even if first_time_only=no is set for the event. This restriction is per level. In a campaign objects with the same id can be assigned once per level.&lt;br /&gt;
** '''[effect]''': one or more effect elements may be listed.  See [[EffectWML]] for a description of [effect].&lt;br /&gt;
** '''duration''': if 'level', effects only last until the end of the level (note : 'level' is the scenario, so this doesn't mean it last until the unit levels-up).&lt;br /&gt;
** '''[filter]''' with a [[StandardUnitFilter]] as argument. The first unit found that matches the filter will be given the object.  If no unit matches the filter, then a message is displayed and the object is not removed.&lt;br /&gt;
** '''[then]''': a subtag that lets you execute actions if the filter conditions are met.  The most common action that should be inside here is a '''[removeitem]''' tag, but you could probably put any tags that otherwise work in a [then] tag.&lt;br /&gt;
** '''silent''': whether or not messages should be suppressed. Default is &amp;quot;no&amp;quot;.&lt;br /&gt;
** '''image''': the displayed image of the object.&lt;br /&gt;
** '''name''': (translatable) displayed as a caption of the image.&lt;br /&gt;
&lt;br /&gt;
** '''description''': (translatable) displayed as a message of the image.&lt;br /&gt;
** '''cannot_use_message''': (translatable) displayed instead of '''description''' if no unit passes the filter test.&lt;br /&gt;
** If you do not supply a filter, the object action will be applied to a unit at the location of the moveto event. Currently this isn't recommended as it is not clear that this will continue working this way. Instead it is better to explicitly include a location filter.&lt;br /&gt;
** The object action does not act on units in the recall list. There is a feature request in to allow this, but it is not clear whether or not it will be accepted.&lt;br /&gt;
* '''[remove_shroud]''': removes some shroud from the map for a certain side (only relevant for sides that have shroud=yes).&lt;br /&gt;
** '''side''': (default=1) the side for which to remove shroud.&lt;br /&gt;
** [[StandardLocationFilter]]: the range of tiles for which shroud should be removed.&lt;br /&gt;
* '''[place_shroud]''': places some shroud on the map for a certain side (only relevant for sides that have shroud=yes).&lt;br /&gt;
** '''side''': (default=1) the side for which to place shroud.&lt;br /&gt;
** [[StandardLocationFilter]]: the range of tiles on which shroud should be placed.&lt;br /&gt;
* '''[allow_undo]''': allows the player to undo the event that this tag is inside.  Has an effect only inside moveto events.  If the move is undone, only the position of the unit will be restored; any altered variables or changes to the game will remain changed after the move is undone.  It is up to the scenario designer to avoid abusing this command.&lt;br /&gt;
** Technically, if '''[allow_undo]''' is inside an '''[event]''' with ''first_time_only=yes'' (the default setting), and the user undoes the event, then the state of the game has changed in this way: the event will not fire a second time, even though the user undid the move the first time.&lt;br /&gt;
* '''[heal_unit]''': heal a unit. The variable '''$heal_amount''' will be set to the exact number of points healed (i.e can be lesser than the parameter '''amount''' if the unit is fully healed).&lt;br /&gt;
**  '''[filter]''': [[StandardUnitFilter]] the first unit matching the filter will be healed. &lt;br /&gt;
**  '''[filter_second]''': [[StandardUnitFilter]] all the units matching the filter ''and'' having the ''heals'' ability will have their animation played (if ''animate'' is set to true).&lt;br /&gt;
**  '''amount''': the maximum points the unit will be healed.&lt;br /&gt;
**  '''animate''': a boolean which indicate if the healing animations must be played.&lt;br /&gt;
* '''[time_area]''': how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag&lt;br /&gt;
** [[StandardLocationFilter]]: the locations to affect.&lt;br /&gt;
** [[TimeWML]]: the new schedule.&lt;br /&gt;
** '''id''': an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. Can be a comma-separated list when removing time_areas, see below.&lt;br /&gt;
** '''remove''': (boolean) yes/no value. Indicates whether the specified time_area should be removed. Requires an identifier. If no identifier is used, however, all time_areas are removed.&lt;br /&gt;
&lt;br /&gt;
* '''[end_turn]''': end the current side's turn. {{DevFeature}} The current event is finished before the turn is ended.&lt;br /&gt;
&lt;br /&gt;
* '''[replace_map]''': replaces the entire map.&lt;br /&gt;
** '''map''': path to a map file.&lt;br /&gt;
** '''expand''': if 'yes', allows the map size to increase. The expansion direction is currently always bottom-right.&lt;br /&gt;
** '''reduce''': if 'yes', allows the map size to decrease. If the map size is reduced, any units that would no longer be on the map due to its coordinates no longer existing will be put into the recall list.&lt;br /&gt;
&lt;br /&gt;
* '''[replace_schedule]''': replace the time of day schedule of the entire scenario. {{DevFeature1.9}}&lt;br /&gt;
** [[TimeWML]]: the new schedule.&lt;br /&gt;
&lt;br /&gt;
== Useful Macros ==&lt;br /&gt;
There are some predefined macros that you find useful for direct actions. You can find a complete list along with a detailed explanation of how they work [http://www.wesnoth.org/macro-reference.xhtml here].&lt;br /&gt;
* '''{MOVE_UNIT}''': Moves a unit to another location in the map and the player sees the movement (unlike [teleport])&lt;br /&gt;
* '''{FULL_HEAL}''': Brings a unit to full HP&lt;br /&gt;
* '''{LOYAL_UNIT}''': Create a loyal unit&lt;br /&gt;
* '''{MODIFY_TERRAIN_MASK}''': Modify an area of terrain&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;br /&gt;
[[Category: ActionsWML]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DirectActionsWML&amp;diff=36526</id>
		<title>DirectActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DirectActionsWML&amp;diff=36526"/>
		<updated>2010-05-21T16:22:46Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== Direct actions ==&lt;br /&gt;
&lt;br /&gt;
Direct actions are actions that have a direct effect on gameplay.&lt;br /&gt;
&lt;br /&gt;
The following tags are actions:&lt;br /&gt;
* '''[endlevel]''': ends the scenario.&lt;br /&gt;
** '''result''': before the scenario is over, all events with ''name=result'' are triggered.  The message ''result_message'' with the heading ''result_heading'' (see [[LanguageWML]]) are displayed.  If ''result=victory'', the player progresses to the next level; if ''result=defeat'', the game returns to the main menu.  These last two are rarely used: ''result=continue'' behaves identically to ''result=victory'' except the player's gold is not reduced to 80%, and it does not bring up a &amp;quot;Victory&amp;quot; message or the gold changing message (since it doesn't change); ''result=continue_no_save'' works similarly, except the player is not asked whether to save the game, and is taken directly to the next scenario without any messages. {{DevFeature}}: All values for result=... except victory and defeat are being discarded in favor of modifying '''[endlevel]''' behaviour with single keys.&lt;br /&gt;
Unless ''result=defeat'', the following keys can also be used:&lt;br /&gt;
** '''bonus''': whether the player should get bonus gold (maximum possible gold that could have been earned by waiting the level out). The default is bonus=yes.&lt;br /&gt;
** '''carryover_report''': whether the player should receive a summary of the scenario outcome, the default is carryover_report=yes.&lt;br /&gt;
** '''save''': whether a start-of-scenario save should be created for the next scenario, the default is save=yes.&lt;br /&gt;
** '''linger_mode''': If ...=yes, the screen is greyed out and there's the possibility to save before advancing to the next scenario, the default is linger_mode=yes.&lt;br /&gt;
** '''next_scenario''': (default specified in '''[scenario]''' tag) the ID of the next scenario that should be played.  All units that side 1 controls at this point become available for recall in ''next_scenario''.&lt;br /&gt;
** When the result is &amp;quot;victory&amp;quot; the following keys can be used:&lt;br /&gt;
*** '''carryover_percentage''': by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.&lt;br /&gt;
*** '''carryover_add''': if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.&lt;br /&gt;
** '''music''': (default specified in '''[scenario]''' or '''[game_config]''' tags) a comma-separated list of music tracks from which one will be chosen and played once after any events related to the end of level result are executed; by default, victory_music is used on victory, and defeat_music on defeat.&lt;br /&gt;
** '''end_text''': Text that is shown centered in a black screen at the end of a campaign. Defaults to &amp;quot;The End&amp;quot;. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].&lt;br /&gt;
** '''end_text_duration''': Delay, in milliseconds, before displaying the game credits at the end of a campaign. In other words, for how much time '''end_text''' is displayed on screen. Defaults to 3500. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].&lt;br /&gt;
* '''[unit]''': places a unit on the map.  For syntax see [[SingleUnitWML]].&lt;br /&gt;
** {{Short Note:Predefined Macro|GENERIC_UNIT}}&lt;br /&gt;
** '''to_variable''':  spawn directly into a variable instead of on the map.&lt;br /&gt;
* '''[recall]''': recalls a unit.  The unit is recalled free of charge, and is placed near the leader.&lt;br /&gt;
** [[StandardUnitFilter]]: the first matching unit will be recalled.  If no units match this tag is ignored. Do not use a [filter] tag. If a comma separated list is given, every unit currently considered for recall is checked against all the types (not each single one of the types against all units).&lt;br /&gt;
** '''x,y''': the unit is placed here instead of next to the leader.&lt;br /&gt;
** '''show''': yes/no, default yes: whether the unit is animated (faded in) or instantly displayed&lt;br /&gt;
* '''[teleport]''': teleports a unit on map. {{Short Note:Predefined Macro|TELEPORT_UNIT}}&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] all units matching the filter will be teleported.&lt;br /&gt;
** '''x,y''': the position to teleport to.&lt;br /&gt;
** '''clear_shroud''': should shroud be cleared on arrival&lt;br /&gt;
** '''animate''': should a teleport animation be played (if the unit doesn't have a teleport animation, it will fade out/fade in)&lt;br /&gt;
** '''ignore_passability''': {{DevFeature}} normally, units will not be teleported into terrain that is impassable for them. Setting this attribute to &amp;quot;yes&amp;quot; permits it.&lt;br /&gt;
* '''[terrain_mask]''': changes the terrain on the map.  See [[TerrainMaskWML]].&lt;br /&gt;
* '''[terrain]''': changes the terrain on the map.&lt;br /&gt;
** '''terrain''': the character of the terrain to use.  See [[TerrainCodesWML]] to see what letter a type of terrain uses.&lt;br /&gt;
** '''x,y''': the position (or range of positions) to change.&lt;br /&gt;
** '''layer''': (overlay|base|both, default=both) only change the specified layer.&lt;br /&gt;
** '''replace_if_failed''': (default=no) When replacing just one layer failed, try to replace the whole terrain. If '''terrain''' is an overlay only terrain, use the default_base as base layer. If the terrain has no default base, do nothing.&lt;br /&gt;
* '''[gold]''': give one side gold.&lt;br /&gt;
** '''amount''': the amount of gold to give.&lt;br /&gt;
** '''side''': (default=1) the number of the side to give the gold to.&lt;br /&gt;
* '''[unstore_unit]''': creates a unit from a game variable, and activates it on the playing field.  This must be a specific variable describing a unit, and may not be an array -- to unstore an entire array, iterate over it.  The variable is not cleared.  See also [[InternalActionsWML#.5Bstore_unit.5D|[store_unit]]], [[ConditionalActionsWML#.5Bwhile.5D|[while]]] and [[InternalActionsWML#.5Bclear_variable.5D|[clear_variable]]]. Note units with a negative amount of hitpoints will be unstored with 1 hitpoint.&lt;br /&gt;
** '''variable''': the name of the variable.&lt;br /&gt;
** '''find_vacant''': whether the unit should be placed on the nearest vacant tile to its specified location.  If this is set to 'no'(default), then any unit on the same tile as the unit being unstored will be destroyed.&lt;br /&gt;
** '''text''': (translatable) floating text to display above the unit, such as a damage amount&lt;br /&gt;
** '''red''', '''green''', '''blue''': (default=0,0,0) the color to display the text in. Values vary from 0-255. You may find it convenient to use the {COLOR_HARM} or {COLOR_HEAL} macro instead. (Use {COLOR_HARM} or {COLOR_HEAL} instead of the whole red,green,blue= line.)&lt;br /&gt;
** '''advance''': (default=true) if true the unit is advanced if it has enough XP. When modifying XP make sure to do it from inside a [[EventWML#Multiplayer_safety|synchronized event]] or it may lead to OOS errors especially when several advancement paths exist.&lt;br /&gt;
** '''x''' ,'''y''': override unit location&lt;br /&gt;
* '''[allow_recruit]''': allows a side to recruit units it couldn't previously recruit.&lt;br /&gt;
** '''type''': the types of units that the side can now recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that is being allowed to recruit the units.&lt;br /&gt;
* '''[disallow_recruit]''': prevents a side from recruiting units it could previously recruit.&lt;br /&gt;
** '''type''': the types of units that the side can no longer recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that may no longer recruit the units.&lt;br /&gt;
* '''[set_recruit]''': sets the units a side can recruit.&lt;br /&gt;
** '''recruit''': the types of units that the side can now recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that is having its recruitment set.&lt;br /&gt;
* '''[modify_side]''': modifies some details of a given side in the middle of a scenario.  '''The following listed properties are the only properties that [modify_side] can affect!'&lt;br /&gt;
** '''side''': (default=1) the number of the side that is to be changed.&lt;br /&gt;
** '''income''': the income given at the begining of each turn.&lt;br /&gt;
** '''team_name''': the team in which the side plays the scenario.&lt;br /&gt;
** '''user_team_name''': a translatable string representing the team's description. This has no effect on alliances. Defaults to ''team_name''.&lt;br /&gt;
** '''gold''': the amount of gold the side owns.&lt;br /&gt;
** '''village_gold''': the income setting per village for the side.&lt;br /&gt;
** '''controller''': the identifier string of the side's controller. Uses the same syntax of the ''controller'' key in the [[SideWML|[side]]] tag.&lt;br /&gt;
** '''fog''': a boolean string (yes/no) describing the status of Fog for the side.&lt;br /&gt;
** '''shroud''': a boolean string describing the status of Shroud for the side.&lt;br /&gt;
** '''hidden''': a boolean string specifying whether side is shown in status table.&lt;br /&gt;
** '''[ai]''': replaces a side's AI parameters with the new specified ones. Uses the same syntax described in [[AiWML]].&lt;br /&gt;
** '''switch_ai''': {{DevFeature}} replaces a side ai with a new AI from specified file(ignoring those AI parameters above). Path to file follows the usual WML convention.&lt;br /&gt;
** '''share_maps''': {{DevFeature}} change the share_maps side attribute. Be sure to use shroud=yes for that side and have it as an ally&lt;br /&gt;
** '''share_view''': {{DevFeature}} change the share_view side attribute. Be sure to use fog=yes for that side and have it as an ally&lt;br /&gt;
* '''[modify_turns]''': modifies the turn limit in the middle of a scenario.&lt;br /&gt;
** '''value''': the new turn limit.&lt;br /&gt;
** '''add''': if used instead of ''value'', specifies the number of turns to add to the current limit (can be negative).&lt;br /&gt;
** '''current''': changes the current turn number after applying turn limit modifications, if any. It is possible to change the current turn number to a greater one than the current only; also, it is not possible to change the turn number to exceed the turn limit.&lt;br /&gt;
* '''[capture_village]''': changes the ownership of a village.&lt;br /&gt;
** '''side''': the side that takes control of the village. This side needs to have a leader (canrecruit=yes). If the side key is not given, the village will become neutral.&lt;br /&gt;
** '''x, y''': the location of the village.&lt;br /&gt;
* '''[kill]''': Removes all units (including units in a recall list) that match the filter from the game.&lt;br /&gt;
** [[StandardUnitFilter]]: Selection criterion; do not use a [filter] tag.&lt;br /&gt;
** '''animate''': if 'yes', displays the unit dying (fading away).&lt;br /&gt;
** '''fire_event''': if 'yes', triggers any appropriate 'die' events (See [[EventWML]]). Note that any 'last breath' and 'die' events triggered by this are executed immediately, interrupting the current event and thus causing the x1, y1, x2, and y2 variables to be reset for that 'die' event, which in turn causes those variables to be invalid for the remainder of this event.&lt;br /&gt;
* '''[petrify]''': Petrifies all units that match the filter. In 1.6 and earlier this is '''[stone]'''.&lt;br /&gt;
** [[StandardUnitFilter]] all units matching the filter will be petrified.  If no unit matches the filter, then nothing happens (probably).  If absent, all units on the map are petrified.&lt;br /&gt;
* '''[unpetrify]''': Unpetrifies all units that match the filter. In 1.6 and earlier this is '''[unstone]'''.&lt;br /&gt;
** [[StandardUnitFilter]] all units matching the filter will be unpetrified.  If no unit matches the filter, then nothing happens (probably).  If absent, all units on the map are unpetrified.&lt;br /&gt;
* '''[object]''': gives some unit an object and removes all items on the tile the unit is on.&lt;br /&gt;
** '''id''': (Optional) when the object is picked up, a flag is set for ''id''.  The object cannot be picked up if a flag for ''id'' has been set.  This means that any object with an id can only be used once, even if first_time_only=no is set for the event. This restriction is per level. In a campaign objects with the same id can be assigned once per level.&lt;br /&gt;
** '''[effect]''': one or more effect elements may be listed.  See [[EffectWML]] for a description of [effect].&lt;br /&gt;
** '''duration''': if 'level', effects only last until the end of the level (note : 'level' is the scenario, so this doesn't mean it last until the unit levels-up).&lt;br /&gt;
** '''[filter]''' with a [[StandardUnitFilter]] as argument. The first unit found that matches the filter will be given the object.  If no unit matches the filter, then a message is displayed and the object is not removed.&lt;br /&gt;
** '''[then]''': a subtag that lets you execute actions if the filter conditions are met.  The most common action that should be inside here is a '''[removeitem]''' tag, but you could probably put any tags that otherwise work in a [then] tag.&lt;br /&gt;
** '''silent''': whether or not messages should be suppressed. Default is &amp;quot;no&amp;quot;.&lt;br /&gt;
** '''image''': the displayed image of the object.&lt;br /&gt;
** '''name''': (translatable) displayed as a caption of the image.&lt;br /&gt;
&lt;br /&gt;
** '''description''': (translatable) displayed as a message of the image.&lt;br /&gt;
** '''cannot_use_message''': (translatable) displayed instead of '''description''' if no unit passes the filter test.&lt;br /&gt;
** If you do not supply a filter, the object action will be applied to a unit at the location of the moveto event. Currently this isn't recommended as it is not clear that this will continue working this way. Instead it is better to explicitly include a location filter.&lt;br /&gt;
** The object action does not act on units in the recall list. There is a feature request in to allow this, but it is not clear whether or not it will be accepted.&lt;br /&gt;
* '''[remove_shroud]''': removes some shroud from the map for a certain side (only relevant for sides that have shroud=yes).&lt;br /&gt;
** '''side''': (default=1) the side for which to remove shroud.&lt;br /&gt;
** [[StandardLocationFilter]]: the range of tiles for which shroud should be removed.&lt;br /&gt;
* '''[place_shroud]''': places some shroud on the map for a certain side (only relevant for sides that have shroud=yes).&lt;br /&gt;
** '''side''': (default=1) the side for which to place shroud.&lt;br /&gt;
** [[StandardLocationFilter]]: the range of tiles on which shroud should be placed.&lt;br /&gt;
* '''[allow_undo]''': allows the player to undo the event that this tag is inside.  Has an effect only inside moveto events.  If the move is undone, only the position of the unit will be restored; any altered variables or changes to the game will remain changed after the move is undone.  It is up to the scenario designer to avoid abusing this command.&lt;br /&gt;
** Technically, if '''[allow_undo]''' is inside an '''[event]''' with ''first_time_only=yes'' (the default setting), and the user undoes the event, then the state of the game has changed in this way: the event will not fire a second time, even though the user undid the move the first time.&lt;br /&gt;
* '''[heal_unit]''': heal a unit. The variable '''$heal_amount''' will be set to the exact number of points healed (i.e can be lesser than the parameter '''amount''' if the unit is fully healed).&lt;br /&gt;
**  '''[filter]''': [[StandardUnitFilter]] the first unit matching the filter will be healed. &lt;br /&gt;
**  '''[filter_second]''': [[StandardUnitFilter]] all the units matching the filter ''and'' having the ''heals'' ability will have their animation played (if ''animate'' is set to true).&lt;br /&gt;
**  '''amount''': the maximum points the unit will be healed.&lt;br /&gt;
**  '''animate''': a boolean which indicate if the healing animations must be played.&lt;br /&gt;
* '''[time_area]''': how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag&lt;br /&gt;
** [[StandardLocationFilter]]: the locations to affect.&lt;br /&gt;
** [[TimeWML]]: the new schedule.&lt;br /&gt;
** '''id''': an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. Can be a comma-separated list when removing time_areas, see below.&lt;br /&gt;
** '''remove''': (boolean) yes/no value. Indicates whether the specified time_area should be removed. Requires an identifier. If no identifier is used, however, all time_areas are removed.&lt;br /&gt;
&lt;br /&gt;
* '''[end_turn]''': end the current side's turn. {{DevFeature}} The current event is finished before the turn is ended.&lt;br /&gt;
&lt;br /&gt;
* '''[replace_map]''': replaces the entire map.&lt;br /&gt;
** '''map''': path to a map file.&lt;br /&gt;
** '''expand''': if 'yes', allows the map size to increase. The expansion direction is currently always bottom-right.&lt;br /&gt;
** '''reduce''': if 'yes', allows the map size to decrease. If the map size is reduced, any units that would no longer be on the map due to its coordinates no longer existing will be put into the recall list.&lt;br /&gt;
&lt;br /&gt;
* '''[replace_schedule]''': replace the time of day schedule of the entire scenario. {{DevFeature1.9}}&lt;br /&gt;
** [[TimeWML]]: the new schedule.&lt;br /&gt;
&lt;br /&gt;
== Useful Macros ==&lt;br /&gt;
There are some predefined macros that you find useful for direct actions. You can find a complete list along with a detailed explanation of how they work [http://www.wesnoth.org/macro-reference.xhtml here].&lt;br /&gt;
* '''{MOVE_UNIT}''': Moves a unit to another location in the map and the player sees the movement (unlike [teleport])&lt;br /&gt;
* '''{FULL_HEAL}''': Brings a unit to full HP&lt;br /&gt;
* '''{LOYAL_UNIT}''': Create a loyal unit&lt;br /&gt;
* '''{MODIFY_TERRAIN_MASK}''': Modify an area of terrain&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;br /&gt;
[[Category: ActionsWML]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DirectActionsWML&amp;diff=36525</id>
		<title>DirectActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DirectActionsWML&amp;diff=36525"/>
		<updated>2010-05-21T16:22:28Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: removed dev feature from (un)petrify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== Direct actions ==&lt;br /&gt;
&lt;br /&gt;
Direct actions are actions that have a direct effect on gameplay.&lt;br /&gt;
&lt;br /&gt;
The following tags are actions:&lt;br /&gt;
* '''[endlevel]''': ends the scenario.&lt;br /&gt;
** '''result''': before the scenario is over, all events with ''name=result'' are triggered.  The message ''result_message'' with the heading ''result_heading'' (see [[LanguageWML]]) are displayed.  If ''result=victory'', the player progresses to the next level; if ''result=defeat'', the game returns to the main menu.  These last two are rarely used: ''result=continue'' behaves identically to ''result=victory'' except the player's gold is not reduced to 80%, and it does not bring up a &amp;quot;Victory&amp;quot; message or the gold changing message (since it doesn't change); ''result=continue_no_save'' works similarly, except the player is not asked whether to save the game, and is taken directly to the next scenario without any messages. {{DevFeature}}: All values for result=... except victory and defeat are being discarded in favor of modifying '''[endlevel]''' behaviour with single keys.&lt;br /&gt;
Unless ''result=defeat'', the following keys can also be used:&lt;br /&gt;
** '''bonus''': whether the player should get bonus gold (maximum possible gold that could have been earned by waiting the level out). The default is bonus=yes.&lt;br /&gt;
** '''carryover_report''': whether the player should receive a summary of the scenario outcome, the default is carryover_report=yes.&lt;br /&gt;
** '''save''': whether a start-of-scenario save should be created for the next scenario, the default is save=yes.&lt;br /&gt;
** '''linger_mode''': If ...=yes, the screen is greyed out and there's the possibility to save before advancing to the next scenario, the default is linger_mode=yes.&lt;br /&gt;
** '''next_scenario''': (default specified in '''[scenario]''' tag) the ID of the next scenario that should be played.  All units that side 1 controls at this point become available for recall in ''next_scenario''.&lt;br /&gt;
** When the result is &amp;quot;victory&amp;quot; the following keys can be used:&lt;br /&gt;
*** '''carryover_percentage''': by default 80% of the gold is carried over to the next scenario, with this key the amount can be changed.&lt;br /&gt;
*** '''carryover_add''': if true the gold will be added to the starting gold the next scenario, if false the next scenario will start with the amount of the current scenario (after taxes) or the minimum in the next scenario. Default is false.&lt;br /&gt;
** '''music''': (default specified in '''[scenario]''' or '''[game_config]''' tags) a comma-separated list of music tracks from which one will be chosen and played once after any events related to the end of level result are executed; by default, victory_music is used on victory, and defeat_music on defeat.&lt;br /&gt;
** '''end_text''': Text that is shown centered in a black screen at the end of a campaign. Defaults to &amp;quot;The End&amp;quot;. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].&lt;br /&gt;
** '''end_text_duration''': Delay, in milliseconds, before displaying the game credits at the end of a campaign. In other words, for how much time '''end_text''' is displayed on screen. Defaults to 3500. Note that this has cumulative effects over the campaign - it persists even if the endlevel does not trigger the end of the campaign. See also [[CampaignWML]].&lt;br /&gt;
* '''[unit]''': places a unit on the map.  For syntax see [[SingleUnitWML]].&lt;br /&gt;
** {{Short Note:Predefined Macro|GENERIC_UNIT}}&lt;br /&gt;
** '''to_variable''':  spawn directly into a variable instead of on the map.&lt;br /&gt;
* '''[recall]''': recalls a unit.  The unit is recalled free of charge, and is placed near the leader.&lt;br /&gt;
** [[StandardUnitFilter]]: the first matching unit will be recalled.  If no units match this tag is ignored. Do not use a [filter] tag. If a comma separated list is given, every unit currently considered for recall is checked against all the types (not each single one of the types against all units).&lt;br /&gt;
** '''x,y''': the unit is placed here instead of next to the leader.&lt;br /&gt;
** '''show''': yes/no, default yes: whether the unit is animated (faded in) or instantly displayed&lt;br /&gt;
* '''[teleport]''': teleports a unit on map. {{Short Note:Predefined Macro|TELEPORT_UNIT}}&lt;br /&gt;
** '''[filter]''': [[StandardUnitFilter]] all units matching the filter will be teleported.&lt;br /&gt;
** '''x,y''': the position to teleport to.&lt;br /&gt;
** '''clear_shroud''': should shroud be cleared on arrival&lt;br /&gt;
** '''animate''': should a teleport animation be played (if the unit doesn't have a teleport animation, it will fade out/fade in)&lt;br /&gt;
** '''ignore_passability''': {{DevFeature}} normally, units will not be teleported into terrain that is impassable for them. Setting this attribute to &amp;quot;yes&amp;quot; permits it.&lt;br /&gt;
* '''[terrain_mask]''': changes the terrain on the map.  See [[TerrainMaskWML]].&lt;br /&gt;
* '''[terrain]''': changes the terrain on the map.&lt;br /&gt;
** '''terrain''': the character of the terrain to use.  See [[TerrainCodesWML]] to see what letter a type of terrain uses.&lt;br /&gt;
** '''x,y''': the position (or range of positions) to change.&lt;br /&gt;
** '''layer''': (overlay|base|both, default=both) only change the specified layer.&lt;br /&gt;
** '''replace_if_failed''': (default=no) When replacing just one layer failed, try to replace the whole terrain. If '''terrain''' is an overlay only terrain, use the default_base as base layer. If the terrain has no default base, do nothing.&lt;br /&gt;
* '''[gold]''': give one side gold.&lt;br /&gt;
** '''amount''': the amount of gold to give.&lt;br /&gt;
** '''side''': (default=1) the number of the side to give the gold to.&lt;br /&gt;
* '''[unstore_unit]''': creates a unit from a game variable, and activates it on the playing field.  This must be a specific variable describing a unit, and may not be an array -- to unstore an entire array, iterate over it.  The variable is not cleared.  See also [[InternalActionsWML#.5Bstore_unit.5D|[store_unit]]], [[ConditionalActionsWML#.5Bwhile.5D|[while]]] and [[InternalActionsWML#.5Bclear_variable.5D|[clear_variable]]]. Note units with a negative amount of hitpoints will be unstored with 1 hitpoint.&lt;br /&gt;
** '''variable''': the name of the variable.&lt;br /&gt;
** '''find_vacant''': whether the unit should be placed on the nearest vacant tile to its specified location.  If this is set to 'no'(default), then any unit on the same tile as the unit being unstored will be destroyed.&lt;br /&gt;
** '''text''': (translatable) floating text to display above the unit, such as a damage amount&lt;br /&gt;
** '''red''', '''green''', '''blue''': (default=0,0,0) the color to display the text in. Values vary from 0-255. You may find it convenient to use the {COLOR_HARM} or {COLOR_HEAL} macro instead. (Use {COLOR_HARM} or {COLOR_HEAL} instead of the whole red,green,blue= line.)&lt;br /&gt;
** '''advance''': (default=true) if true the unit is advanced if it has enough XP. When modifying XP make sure to do it from inside a [[EventWML#Multiplayer_safety|synchronized event]] or it may lead to OOS errors especially when several advancement paths exist.&lt;br /&gt;
** '''x''' ,'''y''': override unit location&lt;br /&gt;
* '''[allow_recruit]''': allows a side to recruit units it couldn't previously recruit.&lt;br /&gt;
** '''type''': the types of units that the side can now recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that is being allowed to recruit the units.&lt;br /&gt;
* '''[disallow_recruit]''': prevents a side from recruiting units it could previously recruit.&lt;br /&gt;
** '''type''': the types of units that the side can no longer recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that may no longer recruit the units.&lt;br /&gt;
* '''[set_recruit]''': sets the units a side can recruit.&lt;br /&gt;
** '''recruit''': the types of units that the side can now recruit.&lt;br /&gt;
** '''side''': (default=1) the number of the side that is having its recruitment set.&lt;br /&gt;
* '''[modify_side]''': modifies some details of a given side in the middle of a scenario.  '''The following listed properties are the only properties that [modify_side] can affect!'&lt;br /&gt;
** '''side''': (default=1) the number of the side that is to be changed.&lt;br /&gt;
** '''income''': the income given at the begining of each turn.&lt;br /&gt;
** '''team_name''': the team in which the side plays the scenario.&lt;br /&gt;
** '''user_team_name''': a translatable string representing the team's description. This has no effect on alliances. Defaults to ''team_name''.&lt;br /&gt;
** '''gold''': the amount of gold the side owns.&lt;br /&gt;
** '''village_gold''': the income setting per village for the side.&lt;br /&gt;
** '''controller''': the identifier string of the side's controller. Uses the same syntax of the ''controller'' key in the [[SideWML|[side]]] tag.&lt;br /&gt;
** '''fog''': a boolean string (yes/no) describing the status of Fog for the side.&lt;br /&gt;
** '''shroud''': a boolean string describing the status of Shroud for the side.&lt;br /&gt;
** '''hidden''': a boolean string specifying whether side is shown in status table.&lt;br /&gt;
** '''[ai]''': replaces a side's AI parameters with the new specified ones. Uses the same syntax described in [[AiWML]].&lt;br /&gt;
** '''switch_ai''': {{DevFeature}} replaces a side ai with a new AI from specified file(ignoring those AI parameters above). Path to file follows the usual WML convention.&lt;br /&gt;
** '''share_maps''': {{DevFeature}} change the share_maps side attribute. Be sure to use shroud=yes for that side and have it as an ally&lt;br /&gt;
** '''share_view''': {{DevFeature}} change the share_view side attribute. Be sure to use fog=yes for that side and have it as an ally&lt;br /&gt;
* '''[modify_turns]''': modifies the turn limit in the middle of a scenario.&lt;br /&gt;
** '''value''': the new turn limit.&lt;br /&gt;
** '''add''': if used instead of ''value'', specifies the number of turns to add to the current limit (can be negative).&lt;br /&gt;
** '''current''': changes the current turn number after applying turn limit modifications, if any. It is possible to change the current turn number to a greater one than the current only; also, it is not possible to change the turn number to exceed the turn limit.&lt;br /&gt;
* '''[capture_village]''': changes the ownership of a village.&lt;br /&gt;
** '''side''': the side that takes control of the village. This side needs to have a leader (canrecruit=yes). If the side key is not given, the village will become neutral.&lt;br /&gt;
** '''x, y''': the location of the village.&lt;br /&gt;
* '''[kill]''': Removes all units (including units in a recall list) that match the filter from the game.&lt;br /&gt;
** [[StandardUnitFilter]]: Selection criterion; do not use a [filter] tag.&lt;br /&gt;
** '''animate''': if 'yes', displays the unit dying (fading away).&lt;br /&gt;
** '''fire_event''': if 'yes', triggers any appropriate 'die' events (See [[EventWML]]). Note that any 'last breath' and 'die' events triggered by this are executed immediately, interrupting the current event and thus causing the x1, y1, x2, and y2 variables to be reset for that 'die' event, which in turn causes those variables to be invalid for the remainder of this event.&lt;br /&gt;
* '''[petrify]''': Petrifies all units that match the filter. ; In 1.6 and earlier this is '''[stone]'''.&lt;br /&gt;
** [[StandardUnitFilter]] all units matching the filter will be petrified.  If no unit matches the filter, then nothing happens (probably).  If absent, all units on the map are petrified.&lt;br /&gt;
* '''[unpetrify]''': Unpetrifies all units that match the filter. In 1.6 and earlier this is '''[unstone]'''.&lt;br /&gt;
** [[StandardUnitFilter]] all units matching the filter will be unpetrified.  If no unit matches the filter, then nothing happens (probably).  If absent, all units on the map are unpetrified.&lt;br /&gt;
* '''[object]''': gives some unit an object and removes all items on the tile the unit is on.&lt;br /&gt;
** '''id''': (Optional) when the object is picked up, a flag is set for ''id''.  The object cannot be picked up if a flag for ''id'' has been set.  This means that any object with an id can only be used once, even if first_time_only=no is set for the event. This restriction is per level. In a campaign objects with the same id can be assigned once per level.&lt;br /&gt;
** '''[effect]''': one or more effect elements may be listed.  See [[EffectWML]] for a description of [effect].&lt;br /&gt;
** '''duration''': if 'level', effects only last until the end of the level (note : 'level' is the scenario, so this doesn't mean it last until the unit levels-up).&lt;br /&gt;
** '''[filter]''' with a [[StandardUnitFilter]] as argument. The first unit found that matches the filter will be given the object.  If no unit matches the filter, then a message is displayed and the object is not removed.&lt;br /&gt;
** '''[then]''': a subtag that lets you execute actions if the filter conditions are met.  The most common action that should be inside here is a '''[removeitem]''' tag, but you could probably put any tags that otherwise work in a [then] tag.&lt;br /&gt;
** '''silent''': whether or not messages should be suppressed. Default is &amp;quot;no&amp;quot;.&lt;br /&gt;
** '''image''': the displayed image of the object.&lt;br /&gt;
** '''name''': (translatable) displayed as a caption of the image.&lt;br /&gt;
&lt;br /&gt;
** '''description''': (translatable) displayed as a message of the image.&lt;br /&gt;
** '''cannot_use_message''': (translatable) displayed instead of '''description''' if no unit passes the filter test.&lt;br /&gt;
** If you do not supply a filter, the object action will be applied to a unit at the location of the moveto event. Currently this isn't recommended as it is not clear that this will continue working this way. Instead it is better to explicitly include a location filter.&lt;br /&gt;
** The object action does not act on units in the recall list. There is a feature request in to allow this, but it is not clear whether or not it will be accepted.&lt;br /&gt;
* '''[remove_shroud]''': removes some shroud from the map for a certain side (only relevant for sides that have shroud=yes).&lt;br /&gt;
** '''side''': (default=1) the side for which to remove shroud.&lt;br /&gt;
** [[StandardLocationFilter]]: the range of tiles for which shroud should be removed.&lt;br /&gt;
* '''[place_shroud]''': places some shroud on the map for a certain side (only relevant for sides that have shroud=yes).&lt;br /&gt;
** '''side''': (default=1) the side for which to place shroud.&lt;br /&gt;
** [[StandardLocationFilter]]: the range of tiles on which shroud should be placed.&lt;br /&gt;
* '''[allow_undo]''': allows the player to undo the event that this tag is inside.  Has an effect only inside moveto events.  If the move is undone, only the position of the unit will be restored; any altered variables or changes to the game will remain changed after the move is undone.  It is up to the scenario designer to avoid abusing this command.&lt;br /&gt;
** Technically, if '''[allow_undo]''' is inside an '''[event]''' with ''first_time_only=yes'' (the default setting), and the user undoes the event, then the state of the game has changed in this way: the event will not fire a second time, even though the user undid the move the first time.&lt;br /&gt;
* '''[heal_unit]''': heal a unit. The variable '''$heal_amount''' will be set to the exact number of points healed (i.e can be lesser than the parameter '''amount''' if the unit is fully healed).&lt;br /&gt;
**  '''[filter]''': [[StandardUnitFilter]] the first unit matching the filter will be healed. &lt;br /&gt;
**  '''[filter_second]''': [[StandardUnitFilter]] all the units matching the filter ''and'' having the ''heals'' ability will have their animation played (if ''animate'' is set to true).&lt;br /&gt;
**  '''amount''': the maximum points the unit will be healed.&lt;br /&gt;
**  '''animate''': a boolean which indicate if the healing animations must be played.&lt;br /&gt;
* '''[time_area]''': how a day should progress in a given area. Everywhere not specified in a [time_area] tag is affected by the [time] and [illuminated_time] tags in the [scenario] tag&lt;br /&gt;
** [[StandardLocationFilter]]: the locations to affect.&lt;br /&gt;
** [[TimeWML]]: the new schedule.&lt;br /&gt;
** '''id''': an unique identifier assigned to a time_area. Optional, unless you want to remove the time_area later. Can be a comma-separated list when removing time_areas, see below.&lt;br /&gt;
** '''remove''': (boolean) yes/no value. Indicates whether the specified time_area should be removed. Requires an identifier. If no identifier is used, however, all time_areas are removed.&lt;br /&gt;
&lt;br /&gt;
* '''[end_turn]''': end the current side's turn. {{DevFeature}} The current event is finished before the turn is ended.&lt;br /&gt;
&lt;br /&gt;
* '''[replace_map]''': replaces the entire map.&lt;br /&gt;
** '''map''': path to a map file.&lt;br /&gt;
** '''expand''': if 'yes', allows the map size to increase. The expansion direction is currently always bottom-right.&lt;br /&gt;
** '''reduce''': if 'yes', allows the map size to decrease. If the map size is reduced, any units that would no longer be on the map due to its coordinates no longer existing will be put into the recall list.&lt;br /&gt;
&lt;br /&gt;
* '''[replace_schedule]''': replace the time of day schedule of the entire scenario. {{DevFeature1.9}}&lt;br /&gt;
** [[TimeWML]]: the new schedule.&lt;br /&gt;
&lt;br /&gt;
== Useful Macros ==&lt;br /&gt;
There are some predefined macros that you find useful for direct actions. You can find a complete list along with a detailed explanation of how they work [http://www.wesnoth.org/macro-reference.xhtml here].&lt;br /&gt;
* '''{MOVE_UNIT}''': Moves a unit to another location in the map and the player sees the movement (unlike [teleport])&lt;br /&gt;
* '''{FULL_HEAL}''': Brings a unit to full HP&lt;br /&gt;
* '''{LOYAL_UNIT}''': Create a loyal unit&lt;br /&gt;
* '''{MODIFY_TERRAIN_MASK}''': Modify an area of terrain&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;br /&gt;
[[Category: ActionsWML]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:WML_Tags&amp;diff=36524</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=36524"/>
		<updated>2010-05-21T15:18:41Z</updated>

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

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

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

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband (v0.2.3, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has gotten some fair amount of player attention. Exasperation and I have made great progress and the game is pretty playable now, as single player or with 1 or 2 friends. We've started to expand the magic system to include a mana system and non-combat spells. We've got more ideas than time to code them, so expect cool things to come. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Woodsman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.2.3, currently integrated in Wesband) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
The Modular RPG era system has been integrated within Wesband. There were problems with keeping it as an era in a multi-scenario campaign, and it just became too complex to maintain for other users' RPG scenarios. If I ever get around to making my WesSaga idea, I can easily lift all of the Modular RPG content and settings into Wesband. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
As far as an era goes, MODRPG is incredibly robust. There are many different items, weapons, abilities, weapon specials and spells from which to choose. Most exciting are all the different races. With humans, elves, dwarves, trolls, saurians, goblins, and orcs, we've included every major land-dwelling Wesnothian race except for drakes. We're really just waiting on new drake sprite art to be finished before we adjust the sprites and try to include them. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 You can find it in Wesband]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns.&lt;br /&gt;
&lt;br /&gt;
== Assassin in the Forest (v2, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Elvish Pillager once made a scenario that I've never played, but I heard about it from someone who bumped [http://www.wesnoth.org/forum/viewtopic.php?f=12&amp;amp;t=27143 a really old thread]. The concept seemed fun and easy to do, plus I needed a break from Wesband. (I tried to get his blessing, but he doesn't answer PMs and hasn't been in the irc room since a month of writing this).&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I took part of one morning and made it with a beefed up Assassin. Here are some extra abilities that he has:&lt;br /&gt;
-conceals&lt;br /&gt;
-nightstalk&lt;br /&gt;
-sneak (use no more than half of max moves to stay hidden)&lt;br /&gt;
-slash&amp;amp;dash (can use remaining moves after attacking with melee, each hit with melee adds 1 move)&lt;br /&gt;
-remaining ammo (if you kill your opponent with your throwing daggers, any strikes left can be used and you can attack again).&lt;br /&gt;
&lt;br /&gt;
It's kind of fun, though there are some problems: you're a little useless at the beginning, as the AI destroys each other quicker than you can do anything, and the only real thing you can do is make sure one leader doesn't get so strong that you won't be able to beat him by yourself.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm pretty much done with this. It was a fun distraction. If anyone wants to do anything with it, be my guest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examplenoth ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
I always thought the WML Wiki would be a little better if it had more examples. This is one thing I've done in the past: http://wiki.wesnoth.org/WML_Abilities but I think we could go further with this. It's a shame I'm too busy writing WML that I'm going to actually use to even update the link above. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== You're Making Up WML ==&lt;br /&gt;
&lt;br /&gt;
''Concept'':&lt;br /&gt;
Every once in a while, a new user posts WML with completely made-up syntax in the WML Workshop. A collection of these would be funny (if nothing else), but the page could be useful as a guide to help those users who post such things understand the problem and stop doing it. &lt;br /&gt;
&lt;br /&gt;
Anyway, here are a few links to get me started:&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=29468&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=27732&lt;br /&gt;
http://www.wesnoth.org/forum/viewtopic.php?p=429082#p429082&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SideWML&amp;diff=36403</id>
		<title>SideWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SideWML&amp;diff=36403"/>
		<updated>2010-05-04T13:57:06Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: side allows for more than just a digit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== the [side] tag ==&lt;br /&gt;
&lt;br /&gt;
The [side] tag is used to describe a side in a particular scenario.&lt;br /&gt;
&lt;br /&gt;
The following keys are recognized:&lt;br /&gt;
&lt;br /&gt;
* '''side''': a number. The leader of this side is placed on the tile represented by this number (see [[BuildingMaps]]). When defining sides, they must be defined in order since the side number is checked against the number of sides seen so far.&lt;br /&gt;
&lt;br /&gt;
* '''controller''': how moves for this side should be inputted.&lt;br /&gt;
** '''ai''': the Wesnoth AI makes this side's moves. This is the default setting.&lt;br /&gt;
** '''human''': a player controls this side's moves.&lt;br /&gt;
** '''null''': the side doesn't get a turn to move and doesn't have a leader generated from the contents of the [side] tag. (It still can get units from [unit] tags in the [side] tag.)&lt;br /&gt;
&lt;br /&gt;
* '''no_leader''': if &amp;quot;no&amp;quot; (default), then keys describing a unit which will begin on the side's keep will be the remainder of the '''[side]''' tag, See [[SingleUnitWML]]. Note that if the keys '''x''', '''y''' are included, the leader will begin there regardless of keep location. If this side has a recall list from a previous level, then the recall list will be searched for a leader (using '''canrecruit=yes''') and if one is found it will be used instead of the one described in the '''[side]''' tag. Typical keys used for defining the leader unit are '''type''' (mandatory), '''id''', '''name''' and '''unrenamable=yes''', see [[SingleUnitWML]].&lt;br /&gt;
&lt;br /&gt;
* '''recruit''': a list of unit types. At the beginning of the scenario, the side gains recruitment of these units.&lt;br /&gt;
&lt;br /&gt;
* '''gold''': the starting gold for this side. Default 100. (If gold is carried over from a previous scenario, this value is the minimum starting gold.)&lt;br /&gt;
&lt;br /&gt;
* '''income''': the base income for this side, default 0. This is added to ''base_income'', '''[game_config]''' to determine the side's base income. (see [[GameConfigWML]]).&lt;br /&gt;
&lt;br /&gt;
* '''hidden''': if 'yes', side is not shown in status table.&lt;br /&gt;
&lt;br /&gt;
* '''fog''': if 'yes', this side cannot see any tiles it is not within vision of, except at the start. Please note that the AI currently ignores the fog.&lt;br /&gt;
&lt;br /&gt;
* '''shroud''': if 'yes', this side cannot see any tiles it has not moved within sight of. Please note that the AI currently ignores the shroud. NOTE: with shroud=no, this team *ignores* shroud, so it is not possible to modify it using place_shroud and remove_shroud tags. If you want to do so, use &amp;quot;shroud=yes&amp;quot; and place_shroud/remove_shroud tags.&lt;br /&gt;
&lt;br /&gt;
* '''shroud_data''': describes the area which this team has de-shrouded. An example:&lt;br /&gt;
 |&lt;br /&gt;
 |00011111000&lt;br /&gt;
This would leave the first column on the map unaltered and would change the second column for 11 tiles. A '0' means: shrouded, '1' means unshrouded. You can either call an external file using {@filename}  (see [[PreprocessorRef]]) or place the data in quotes. For making an external file see [[BuildingScenariosShroudData]].&lt;br /&gt;
&lt;br /&gt;
* '''persistent''': whether the side exists in any other scenarios. If '1'(yes), then ''save_id''(see below) is used to identify the side in other scenarios. Default '1'(yes) for sides with a human controller, '0'(no) for ai controlled sides.&lt;br /&gt;
&lt;br /&gt;
* '''save_id''': default ''description'' if available, 'Unknown' otherwise. The ID of the side with respect to the previous and next scenarios. Used to carry over the side's recall list (including the side's leader), recruitment list, and starting gold from scenario to scenario. Also used for the side's displayed name in the victory gold-calculation dialog. (For versions prior to 1.7.3, some extra effort to retrieve carryover information may be needed. See [[SideSwitchingWML]])&lt;br /&gt;
&lt;br /&gt;
* '''team_name''': a non translatable string representing the team's description. Sides with the same team_name are allied. Default ''side''. {{DevFeature}} ''team_name'' is now a comma-separated list of teams that the side is on.&lt;br /&gt;
&lt;br /&gt;
* '''user_team_name''': a translatable string representing the team's description. This has no effect on alliances. Default ''team_name''.&lt;br /&gt;
&lt;br /&gt;
* '''colour''': May be either a numeric color index or a color name (e.g. 'blue', 'purple', 'orange', etc.).  The numeric form is deprecated. The default list of numbers and corresponding colours can be found in data/core/team_colors.cfg.&lt;br /&gt;
&lt;br /&gt;
* '''flag''': a custom flag animation to use instead of the default one to mark captured villages. An automatic side-coloring is applied.&lt;br /&gt;
** Example animation that has three frames and loops every 750ms: ''flag=misc/myflag-1.png:250,misc/myflag-2.png:250,misc/myflag-3.png:250''&lt;br /&gt;
&lt;br /&gt;
* '''flag_icon''': a custom flag icon to indicate the side playing in the statusbar (a size of 24x16 is recommended). An automatic side-coloring is applied.&lt;br /&gt;
&lt;br /&gt;
* '''village_gold''': the amount of gold given to this side per village it controls per turn. Default specified in ''village_income'', '''[game_config]''' ([[GameConfigWML]]). '''Note:''' If you need village gold to be 0. Set the variable to -1.&lt;br /&gt;
&lt;br /&gt;
* '''recall_cost''': the amount of gold it costs to recall a unit. Default specified in ''recall_cost'', '''[game_config]''' ([[GameConfigWML]]). {{DevFeature1.9}}&lt;br /&gt;
&lt;br /&gt;
* '''share_maps''': whether sides allied with this side see all terrains that this side sees, if they are on shroud.&lt;br /&gt;
&lt;br /&gt;
* '''share_view''': whether sides allied with this side see the units that this side sees, if they are on FoW (fog).&lt;br /&gt;
&lt;br /&gt;
* '''disallow_observers''': prevents observers from seeing this side turn. (default: no)&lt;br /&gt;
&lt;br /&gt;
* '''[ai]''' if '''controller=ai''', gives parameters to the AI. See [[AiWML]].&lt;br /&gt;
&lt;br /&gt;
* '''[village]''' describes a village the side begins in control of.&lt;br /&gt;
** ''x'', ''y'' the location of the village. If the pair of coordinates is not a village or is duplicated in another [village] tag, behaviour is undefined. Recent game engine or wmllint should warn about these.&lt;br /&gt;
&lt;br /&gt;
* '''[unit]''' describes a unit which begins on the side. See [[SingleUnitWML]]. If the side has a recall list and the unit is not given a location, it will start on the recall list. Note that the ''side'' attribute under '''[unit]''' will be ignored, as the side will come from the ''side'' attribute of '''[side]'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following keys are multiplayer only:&lt;br /&gt;
&lt;br /&gt;
* '''allow_player''': if false then this side will not be allowed to be modified and will be hidden during game creation.&lt;br /&gt;
&lt;br /&gt;
* '''team_lock''': if true then this side's team is not allowed to be modified.&lt;br /&gt;
&lt;br /&gt;
* '''colour_lock''': if true then this side's color is not allowed to be modified.&lt;br /&gt;
&lt;br /&gt;
* '''gold_lock''': if true then this side's gold is not allowed to be modified. &lt;br /&gt;
&lt;br /&gt;
* '''income_lock''': if true then this side's income is not allowed to be modified.&lt;br /&gt;
&lt;br /&gt;
* '''faction''': this lock this side to this faction.&lt;br /&gt;
&lt;br /&gt;
* '''faction_from_recruit''': if true then this side will be locked to the faction that matches the recruits better.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[EraWML]]&lt;br /&gt;
* [[ScenarioWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=32517</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=32517"/>
		<updated>2009-09-29T19:24:42Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband (v0.2.3, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has gotten some fair amount of player attention. Exasperation and I have made great progress and the game is pretty playable now, as single player or with 1 or 2 friends. We've started to expand the magic system to include a mana system and non-combat spells. We've got more ideas than time to code them, so expect cool things to come. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.2.3, currently integrated in Wesband) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
The Modular RPG era system has been integrated within Wesband. There were problems with keeping it as an era in a multi-scenario campaign, and it just became too complex to maintain for other users' RPG scenarios. If I ever get around to making my WesSaga idea, I can easily lift all of the Modular RPG content and settings into Wesband. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
As far as an era goes, MODRPG is incredibly robust. There are many different items, weapons, abilities, weapon specials and spells from which to choose. Most exciting are all the different races. With humans, elves, dwarves, trolls, saurians, goblins, and orcs, we've included every major land-dwelling Wesnothian race except for drakes. We're really just waiting on new drake sprite art to be finished before we adjust the sprites and try to include them. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 You can find it in Wesband]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns.&lt;br /&gt;
&lt;br /&gt;
== Assassin in the Forest (v2, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Elvish Pillager once made a scenario that I've never played, but I heard about it from someone who bumped [http://www.wesnoth.org/forum/viewtopic.php?f=12&amp;amp;t=27143 a really old thread]. The concept seemed fun and easy to do, plus I needed a break from Wesband. (I tried to get his blessing, but he doesn't answer PMs and hasn't been in the irc room since a month of writing this).&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I took part of one morning and made it with a beefed up Assassin. Here are some extra abilities that he has:&lt;br /&gt;
-conceals&lt;br /&gt;
-nightstalk&lt;br /&gt;
-sneak (use no more than half of max moves to stay hidden)&lt;br /&gt;
-slash&amp;amp;dash (can use remaining moves after attacking with melee, each hit with melee adds 1 move)&lt;br /&gt;
-remaining ammo (if you kill your opponent with your throwing daggers, any strikes left can be used and you can attack again).&lt;br /&gt;
&lt;br /&gt;
It's kind of fun, though there are some problems: you're a little useless at the beginning, as the AI destroys each other quicker than you can do anything, and the only real thing you can do is make sure one leader doesn't get so strong that you won't be able to beat him by yourself.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm pretty much done with this. It was a fun distraction. If anyone wants to do anything with it, be my guest.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=32270</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=32270"/>
		<updated>2009-09-11T21:06:43Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband (v0.2.3, Wesnoth 1.6.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has gotten some fair amount of player attention. Exasperation and I have made great progress and the game is pretty playable now, as single player or with 1 or 2 friends. We've started to expand the magic system to include a mana system and non-combat spells. We've got more ideas than time to code them, so expect cool things to come. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.2.3, currently integrated in Wesband) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
The Modular RPG era system has been integrated within Wesband. There were problems with keeping it as an era in a multi-scenario campaign, and it just became too complex to maintain for other users' RPG scenarios. If I ever get around to making my WesSaga idea, I can easily lift all of the Modular RPG content and settings into Wesband. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
As far as an era goes, MODRPG is incredibly robust. There are many different items, weapons, abilities, weapon specials and spells from which to choose. Most exciting are all the different races. With humans, elves, dwarves, trolls, saurians, goblins, and orcs, we've included every major land-dwelling Wesnothian race except for drakes. We're really just waiting on new drake sprite art to be finished before we adjust the sprites and try to include them. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 You can find it in Wesband]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=30790</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=30790"/>
		<updated>2009-06-24T16:06:19Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* WesSaga (none released, Wesnoth 1.5.8) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (0.1.10a + 0.2.10a, Wesnoth 1.6.3) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has gotten some fair amount of player attention. The combat and dungeon generation systems are nearing completion. From here, the next step is making a magic system similar to what we see in roguelikes.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;br /&gt;
&lt;br /&gt;
However, I'm a little concerned about the viability of this project. The main problem is that I want masses of enemies to act on their turns. This may lead to too much time between player turns.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=30789</id>
		<title>EventWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=30789"/>
		<updated>2009-06-24T16:03:39Z</updated>

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

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

		<summary type="html">&lt;p&gt;Ken Oh: updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (0.1.10a + 0.2.10a, Wesnoth 1.6.3) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov made an excellent dungeon generator that connects to an overworld, and he chose my Modular RPG Era as what he wants to connect with it. This was great news for me, who wanted to develop the era but wouldn't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Unfortunately, Dov is busy with real life, so he passed the project on to me. I've been slowly moving forward with it until a great asset came into the project. A guy named Exasperation undertook the task of learning the existing code forwards and backwards and has made many great additions to it.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband has gotten some fair amount of player attention. The combat and dungeon generation systems are nearing completion. From here, the next step is making a magic system similar to what we see in roguelikes.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ConditionalActionsWML&amp;diff=30379</id>
		<title>ConditionalActionsWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ConditionalActionsWML&amp;diff=30379"/>
		<updated>2009-05-02T12:22:41Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: someone finally explained this to me and i figured i should pass it on. please correct if wrong.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
&lt;br /&gt;
Conditional Actions WML is used to describe container actions that create branching and flow control for WML. The [[#Conditional Actions|conditional actions]] act as gatekeepers, encapsulating other actions with [[#Condition Tags|conditions]] which must be met before an action can take place. These conditional actions also contain the actions which will take place if those conditions are met and, in some cases, what actions will take place if they are ''not'' met.&lt;br /&gt;
&lt;br /&gt;
== Conditional Actions ==&lt;br /&gt;
&lt;br /&gt;
These actions describe actions that should be executed only if certain conditions are met.&lt;br /&gt;
&lt;br /&gt;
=== [if] ===&lt;br /&gt;
&lt;br /&gt;
Executes actions only if the contained [[#Condition Tags|conditions]] are met.&lt;br /&gt;
&lt;br /&gt;
* [[#Condition Tags|Condition Tags]]: Conditions which must be met for the actions in the '''[then]''' tag to be executed.&lt;br /&gt;
&lt;br /&gt;
* '''[then]''': Contains [[:Category:ActionsWML|actions]] which should be executed if all conditions evaluate as true ''or'' if any single '''[or]''' tag evaluates as true.&lt;br /&gt;
&lt;br /&gt;
* '''[else]''': Contains [[:Category:ActionsWML|actions]] which should be executed if any condition evaluates as false ''and'' '''all''' of the '''[or]''' tags evaluate as false.&lt;br /&gt;
&lt;br /&gt;
=== [switch] ===&lt;br /&gt;
&lt;br /&gt;
The '''[switch]''' tag is a special case because it does not use [[#Condition Tags|Condition Tags]] to control whether actions are performed. Instead, it executes different sets of actions based on the value of a variable.&lt;br /&gt;
&lt;br /&gt;
* '''variable''': The name of the variable to check.&lt;br /&gt;
* '''[case]''': Case tag which forms a block containing:&lt;br /&gt;
** '''value''': The value to test the variable's value against.&lt;br /&gt;
** [[:Category:ActionsWML|Action WML]]: Action WML to execute if the variable matches the value. (The rest of the '''[case]''' block after the '''value''' attribute.)&lt;br /&gt;
* '''[else]''': Else tag which forms a block of [[:Category:ActionsWML|Action WML]] to execute if no '''[case]''' block contains a '''value''' matching the value of the '''variable'''.&lt;br /&gt;
&lt;br /&gt;
Example usage:&lt;br /&gt;
  [switch]&lt;br /&gt;
     variable=foo&lt;br /&gt;
     [case]&lt;br /&gt;
        value=&amp;quot;A&amp;quot;&lt;br /&gt;
        ... WML if foo=A ...&lt;br /&gt;
     [/case]&lt;br /&gt;
     [case]&lt;br /&gt;
        value=&amp;quot;B&amp;quot;&lt;br /&gt;
        ... WML if foo=B ...&lt;br /&gt;
     [/case]&lt;br /&gt;
     [else]&lt;br /&gt;
        ... WML if not foo=A nor foo=B ...&lt;br /&gt;
     [/else]&lt;br /&gt;
  [/switch]&lt;br /&gt;
&lt;br /&gt;
=== [while] ===&lt;br /&gt;
&lt;br /&gt;
Like the '''[if]''' tag, executes actions only if conditions described in the contained [[#Condition Tags|conditions]] are met. Additionally, the '''[while]''' tag ''continues'' to execute the actions until the contained [[#Condition Tags|conditions]] are no longer met. Executes a maximum of 1024 iterations per invocation.&lt;br /&gt;
&lt;br /&gt;
* [[#Condition Tags|Condition Tags]]: Conditions which must be met for the actions in the '''[do]''' tag to be executed.&lt;br /&gt;
&lt;br /&gt;
* '''[do]''': contains [[:Category:ActionsWML|actions]] that should be executed repeatedly until some condition is false.&lt;br /&gt;
&lt;br /&gt;
The '''[while]''' tag is useful for iterating over an array.&lt;br /&gt;
An array is a list of values.&lt;br /&gt;
The ''number''th value in the array '''array''' is stored in the WML variable '''''array''[number]'''.&lt;br /&gt;
Note that if '''number''' is the value of the variable '''variable''',&lt;br /&gt;
the expression '''$''array''[$variable]''' will return the ''number''th value in ''array''.&lt;br /&gt;
&lt;br /&gt;
==== 'FOREACH' Macro ====&lt;br /&gt;
This macro simplifies the use of a '''[while]''' tag to create a ''for-each'' iteration format. This is useful, for example, when you want to iterate over each row in a table. To use it, use the [http://www.wesnoth.org/macro-reference.xhtml#FOREACH FOREACH] and [http://www.wesnoth.org/macro-reference.xhtml#NEXT NEXT] macros.&lt;br /&gt;
&lt;br /&gt;
==== 'REPEAT' Macro ====&lt;br /&gt;
This macro simplifies the use of a '''[while]''' tag to execute the same  [[:Category:ActionsWML|actions]] repeatedly for a specified number of times. To use it, use the [http://www.wesnoth.org/macro-reference.xhtml#REPEAT REPEAT] macro.&lt;br /&gt;
&lt;br /&gt;
== Condition Tags ==&lt;br /&gt;
&lt;br /&gt;
These tags describe conditions which must be met before an action can take place. Some or all of them are used in the various [[#Conditional Actions|Conditional Actions]].&lt;br /&gt;
&lt;br /&gt;
; [have_unit]&lt;br /&gt;
: A unit with greater than zero hit points matching this filter exists.&lt;br /&gt;
:* [[StandardUnitFilter]] '''*''': Selection criteria. &amp;lt;br /&amp;gt;'''* Note:''' ''Does '''not''' check for matching units in the recall list!''&lt;br /&gt;
:* '''count''': ''(Optional)'' If used, a number of units equal to the value must match the filter. Accepts a number, range, or comma separated range. If not used, the default value is &amp;quot;1-99999&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; [have_location]&lt;br /&gt;
: A location matching this filter exists.&lt;br /&gt;
:* [[StandardLocationFilter]]: Selection criteria.&lt;br /&gt;
:* '''count''': ''(Optional)'' If used, a number of locations equal to the value must match the filter. Accepts a number, range, or comma separated range. If not used, the default value is &amp;quot;1-99999&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; [variable]&lt;br /&gt;
: Test the value of a WML variable (see [[VariablesWML]]) against another value.&lt;br /&gt;
:* '''name''': The name of the variable to test.&lt;br /&gt;
:* ''&amp;lt;comparison&amp;gt;'': '''One''' of the following keys must be used to compare the value of the named variable, represented as ''$name'' below, against another value:&lt;br /&gt;
:** '''contains''': ''$name'' contains this string value.&lt;br /&gt;
:** '''equals''': ''$name'' is equal (string wise) to this value.&lt;br /&gt;
:** '''not_equals''': ''$name'' is not equal (string wise) to this value.&lt;br /&gt;
:** '''numerical_equals''': ''$name'' is equal (numerically) to this value. &lt;br /&gt;
:** '''numerical_not_equals''': ''$name'' is not equal (numerically) to this value. '''*'''&amp;lt;br /&amp;gt;'''*''' Using '''numerical_equals'''/'''numerical_not_equals''' for numbers results in faster calculation than '''equals'''/'''not_equals'''.&lt;br /&gt;
:** '''greater_than''': ''$name'' is greater than this value.&lt;br /&gt;
:** '''greater_than_equal_to''': ''$name'' is greater than or equal to this value.&lt;br /&gt;
:** '''less_than''': ''$name'' is less than this value.&lt;br /&gt;
:** '''less_than_equal_to''': ''$name'' is less than or equal to this value.&lt;br /&gt;
:** '''boolean_equals''': ''$name'' has an equivalent boolean value. '''*'''&lt;br /&gt;
:** '''boolean_not_equals''': ''$name'' does not have an equivalent boolean value. '''*'''&amp;lt;br /&amp;gt;'''*''' When values are evaluated as boolean values they are checked to see if they are ''false'' or ''true''.&amp;lt;br /&amp;gt;These values are evaluated as ''false'': '''no''', '''false''', '''off''', '''0''', and '''0.0'''&amp;lt;br /&amp;gt;These values are evaluated as ''true'': '''yes''', '''true''', '''on''', '''1''', and '''0.1''' (and any other non-zero number)&lt;br /&gt;
&lt;br /&gt;
=== Meta Condition Tags ===&lt;br /&gt;
&lt;br /&gt;
These tags aren't really conditions, themselves. Instead they are wrapped around condition tags to group them into multiple conditions that must all be met, lists of conditions that only one must be met, or conditions that must not be met. These are handled in order in any combination you can think of. One important thing to remember is if you are using '''[or]''' tags, the first conditional statement should ''not'' have an '''[or]''' tag wrapped around it.&lt;br /&gt;
&lt;br /&gt;
; [and]&lt;br /&gt;
: A condition which must evaluate to true in addition to any others. Useful as a bracket for complex conditions, but not strictly necessary.&lt;br /&gt;
:* [[#Condition Tags|Condition Tags]]: If these evaluate to true, the '''[and]''' tag evaluates to true.&lt;br /&gt;
&lt;br /&gt;
; [or]&lt;br /&gt;
: A condition which, if it evaluates to true, is all that is necessary for the conditions to be met. In other words, if all other conditions are false, but one '''[or]''' condition is true, the conditions have been met for an [[:Category:ActionsWML|action]] to take place. (See [[AdvancedConditionalWML|Example]])&lt;br /&gt;
:* [[#Condition Tags|Condition Tags]]: If these evaluate to true, the '''[or]''' tag evaluates to true. &lt;br /&gt;
&lt;br /&gt;
; [not]&lt;br /&gt;
: A condition which reverses the evaluation of the contained condition(s).&lt;br /&gt;
:* [[#Condition Tags|Condition Tags]]: If these evaluate to true, the '''[not]''' tag evaluates to false. If these evaluate to false, the '''[not]''' tag evaluates to true.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[VariablesWML]]&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[EventWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;br /&gt;
[[Category: ActionsWML]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=AbilitiesWML&amp;diff=30221</id>
		<title>AbilitiesWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=AbilitiesWML&amp;diff=30221"/>
		<updated>2009-04-21T17:40:52Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: Had a fun 1.5 hours trying to figure out why [resistance] wasn't working.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
==  Abilities and their effects ==&lt;br /&gt;
&lt;br /&gt;
There are two types of abilities: ones that apply to units (called ''abilities'') and ones that only apply when using a particular attack (called ''specials'' or ''weapon specials'').  A unit may have multiple abilities and an attack can have multiple specials, but by convention only one weapon special should be assigned to any given attack.&lt;br /&gt;
&lt;br /&gt;
== The ''[abilities]'' tag ==&lt;br /&gt;
&lt;br /&gt;
The following tags are used to describe an ability in WML:&lt;br /&gt;
&lt;br /&gt;
* '''[heals]''': modifies the hitpoints of a unit at the beginning the healer's turn&lt;br /&gt;
* '''[regenerate]''': modifies the hitpoints of a unit at the beginning of the unit's turn&lt;br /&gt;
* '''[resistance]''': modifies the resistance of a unit to damage&lt;br /&gt;
* '''[leadership]''': modifies the damage of a unit&lt;br /&gt;
* '''[skirmisher]''': negates enemy zones of control&lt;br /&gt;
* '''[illuminates]''': modifies the time of day adjacent to the affected units&lt;br /&gt;
* '''[teleport]''': allows the unit to teleport&lt;br /&gt;
* '''[hides]''': renders the unit invisible to enemies&lt;br /&gt;
Any other name is valid, but will result in an ability that does nothing but report it's there.&lt;br /&gt;
&lt;br /&gt;
=== Common keys and tags for every ability ===&lt;br /&gt;
&lt;br /&gt;
* '''name''': the name of the ability.&lt;br /&gt;
* '''name_inactive''': the name of the ability when inactive.&lt;br /&gt;
* '''description''': the description of the ability.&lt;br /&gt;
* '''description_inactive''': the description of the ability when inactive.&lt;br /&gt;
* '''affect_self''': if equal to 'yes', the ability will affect the unit that has it.&lt;br /&gt;
* '''affect_allies''': if equal to 'yes', the ability will affect allies in the specified adjacent hexes.&lt;br /&gt;
* '''affect_enemies''': if equal to 'yes', the ability will affect enemies in the specified adjacent hexes.&lt;br /&gt;
* '''cumulative''': if set to 'yes', this ability will be cumulative with the base value for this ability.&lt;br /&gt;
* '''id''': this ability will not be cumulative with other abilities using this id.&lt;br /&gt;
* '''[adjacent_description]''': contains all four of the above keys, which are used when an adjacent unit receives the ability.&lt;br /&gt;
* '''[filter]''': [[StandardUnitFilter]] If the unit owning the ability does not match this filter, the ability will be inactive.&lt;br /&gt;
* '''[affect_adjacent]''': each adjacent unit that does not match this filter will not receive its effects.&lt;br /&gt;
** '''adjacent''': a comma seperated list of any combination of these directions: '''n''','''ne''','''se''','''s''','''sw''','''nw'''.&lt;br /&gt;
** '''[filter]''': a [[StandardUnitFilter]].&lt;br /&gt;
* '''[filter_self]''': if the owner of the ability does not match this filter, it will not receive the effects of the ability.&lt;br /&gt;
* '''[filter_base_value]''': filters on the value before any modifications; uses the keys '''equals''', '''not_equals''', etc.&lt;br /&gt;
&lt;br /&gt;
=== Extra keys used by the ''[heals]'' ability ===&lt;br /&gt;
&lt;br /&gt;
* '''value''': the amount healed.&lt;br /&gt;
* '''poison''': can be one of ''slowed'',''cured''.&lt;br /&gt;
&lt;br /&gt;
=== Extra keys used by the ''[regenerate]'' ability ===&lt;br /&gt;
&lt;br /&gt;
* '''value''': the amount healed.&lt;br /&gt;
* '''poison''': can be one of ''slowed'',''cured''.&lt;br /&gt;
&lt;br /&gt;
=== Extra keys and tags used by the ''[resistance]'' ability ===&lt;br /&gt;
&lt;br /&gt;
* '''value''': set resistance to this value.&lt;br /&gt;
* '''max_value''': maximum resistance value. This value '''must''' be set in order for [resistance] to function.&lt;br /&gt;
* '''add''': adds to resistance.&lt;br /&gt;
* '''multiply''': multiplies resistance value. &lt;br /&gt;
* '''apply_to''': a list of damage types; if left out, the ability applies to all types.&lt;br /&gt;
* '''active_on''': one of 'defense' or 'offense'; if left out, the ability is active on both.&lt;br /&gt;
&lt;br /&gt;
=== Extra keys used by the ''[leadership]'' ability ===&lt;br /&gt;
&lt;br /&gt;
* '''value''': the percentage bonus to damage.&lt;br /&gt;
&lt;br /&gt;
=== Extra keys used by the ''[illuminates]'' ability ===&lt;br /&gt;
&lt;br /&gt;
* '''value''': the percentage bonus to lawful units.&lt;br /&gt;
* '''max_value''': the maximum percentage bonus given.&lt;br /&gt;
&lt;br /&gt;
=== Extra keys used by the ''[hides]'' ability ===&lt;br /&gt;
&lt;br /&gt;
* '''alert''': the displayed text when the unit is discovered. Default &amp;quot;Ambushed!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Macros for common abilities ===&lt;br /&gt;
&lt;br /&gt;
* ABILITY_AMBUSH&lt;br /&gt;
* ABILITY_CURES&lt;br /&gt;
* ABILITY_HEALS&lt;br /&gt;
* ABILITY_ILLUMINATES&lt;br /&gt;
* ABILITY_LEADERSHIP_LEVEL_1 to ABILITY_LEADERSHIP_LEVEL_5&lt;br /&gt;
* ABILITY_NIGHTSTALK&lt;br /&gt;
* ABILITY_REGENERATES&lt;br /&gt;
* ABILITY_SKIRMISHER&lt;br /&gt;
* ABILITY_STEADFAST&lt;br /&gt;
* ABILITY_SUBMERGE&lt;br /&gt;
* ABILITY_TELEPORT&lt;br /&gt;
&lt;br /&gt;
== The ''[specials]'' tag ==&lt;br /&gt;
&lt;br /&gt;
The '''[specials]''' tag goes inside the '''[attack]''' tag. It can contain the following tags:&lt;br /&gt;
&lt;br /&gt;
* '''[damage]''': modifies the damage of a weapon&lt;br /&gt;
* '''[attacks]''': modifies the number of attacks of a weapon&lt;br /&gt;
* '''[chance_to_hit]''': modifies the chance to hit of a weapon&lt;br /&gt;
* '''[slow]'''&lt;br /&gt;
* '''[poison]'''&lt;br /&gt;
* '''[stones]'''&lt;br /&gt;
* '''[berserk]'''&lt;br /&gt;
* '''[firststrike]'''&lt;br /&gt;
* '''[drains]'''&lt;br /&gt;
* '''[plague]'''&lt;br /&gt;
Any other name is valid, but will result in an special that does nothing but report it's there.&lt;br /&gt;
&lt;br /&gt;
=== Common keys and tags for every weapon special ===&lt;br /&gt;
&lt;br /&gt;
* '''name''': the name of the special.&lt;br /&gt;
* '''name_inactive''': the name of the special when inactive.&lt;br /&gt;
* '''description''': the description of the special.&lt;br /&gt;
* '''description_inactive''': the description of the special when inactive.&lt;br /&gt;
* '''value''': the value to be used. Applies to '''[damage]''', '''[attacks]''', '''[chance_to_hit]''' and '''[berserk]''' (the maximum number of combat rounds).&lt;br /&gt;
* '''add''' the number to add to the base value.&lt;br /&gt;
* '''multiply''': same as '''value''', except that this multiplies the base value.&lt;br /&gt;
* '''cumulative''': if set to 'yes', this special will be cumulative with the base value.&lt;br /&gt;
* '''type''': only usable in '''[plague]''', where it defines the unit type to be spawned on kill.&lt;br /&gt;
* '''id''': this ability will not be cumulative with other specials using this id.&lt;br /&gt;
* '''active_on''': one of '''defense''' or '''offense'''; if left out, the special is active on both.&lt;br /&gt;
* '''apply_to''': one of '''self''','''opponent''','''attacker''','''defender''','''both'''. Determines who the effects of this special are applied to.&lt;br /&gt;
* '''[filter_adjacent]''': [[StandardUnitFilter]], which takes an extra key '''adjacent''', which is used to specify which adjacent hexes to filter on. '''adjacent''' is a comma seperated list of any combination of these directions: '''n''','''ne''','''se''','''s''','''sw''','''nw'''.&lt;br /&gt;
* '''[filter_adjacent_location]''': like [filter_adjacent], except that it filters on the locations rather than the units.&lt;br /&gt;
* '''[filter_self]''': the special will only be active if the owner matches this filter.&lt;br /&gt;
** '''[filter_weapon]''': a standard weapon filter.&lt;br /&gt;
* '''[filter_opponent]''': the special will only be active if the opponent matches this [[StandardUnitFilter]].&lt;br /&gt;
** '''[filter_weapon]''': a standard weapon filter.&lt;br /&gt;
* '''[filter_attacker]''': the special will only be active if the attacker matches this filter.&lt;br /&gt;
** '''[filter_weapon]''': a standard weapon filter.&lt;br /&gt;
* '''[filter_defender]''' the special will only be active if the defender matches this filter.&lt;br /&gt;
** '''[filter_weapon]''': a standard weapon filter.&lt;br /&gt;
* '''[filter_base_value]''': filters on the value before any modifications; uses the keys '''equals''', '''not_equals''', etc.&lt;br /&gt;
&lt;br /&gt;
=== Macros for common weapon specials ===&lt;br /&gt;
&lt;br /&gt;
* WEAPON_SPECIAL_BACKSTAB&lt;br /&gt;
* WEAPON_SPECIAL_BERSERK&lt;br /&gt;
* WEAPON_SPECIAL_CHARGE&lt;br /&gt;
* WEAPON_SPECIAL_DRAIN&lt;br /&gt;
* WEAPON_SPECIAL_FIRSTSTRIKE&lt;br /&gt;
* WEAPON_SPECIAL_MAGICAL&lt;br /&gt;
* WEAPON_SPECIAL_MARKSMAN&lt;br /&gt;
* WEAPON_SPECIAL_PLAGUE&lt;br /&gt;
* WEAPON_SPECIAL_PLAGUE_TYPE TYPE&lt;br /&gt;
* WEAPON_SPECIAL_POISON&lt;br /&gt;
* WEAPON_SPECIAL_SLOW&lt;br /&gt;
* WEAPON_SPECIAL_STONE&lt;br /&gt;
* WEAPON_SPECIAL_SWARM&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[UnitWML]]&lt;br /&gt;
* [[SingleUnitWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:WML Reference]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=InternalActionsWMLUnitTags&amp;diff=29387</id>
		<title>InternalActionsWMLUnitTags</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=InternalActionsWMLUnitTags&amp;diff=29387"/>
		<updated>2009-03-29T01:46:36Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: removed [advancement] from list of alterable values, 1.5.14+ it is not https://gna.org/bugs/index.php?13274 will try to remember to put it back in if/when it goes back in&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
&lt;br /&gt;
When a unit is stored, all keys and tags in the unit definition may be manipulated, including some others, with '''[set_variable]'''. Here is a sample list. (If you have a doubt about what keys are valid or what the valid value range is for each key, code a [store_unit] event, save the game, and examine what keys are in the file.)&lt;br /&gt;
&lt;br /&gt;
* advances_to&lt;br /&gt;
* alignment&lt;br /&gt;
* alpha&lt;br /&gt;
* attacks_left&lt;br /&gt;
* canrecruit&lt;br /&gt;
* cost&lt;br /&gt;
* experience&lt;br /&gt;
* facing&lt;br /&gt;
* flying&lt;br /&gt;
* gender&lt;br /&gt;
* goto_x&lt;br /&gt;
* goto_y&lt;br /&gt;
* hitpoints&lt;br /&gt;
* id&lt;br /&gt;
* language_name (same as the name key in the unit config)&lt;br /&gt;
* max_experience&lt;br /&gt;
* max_hitpoints&lt;br /&gt;
* max_moves&lt;br /&gt;
* moves&lt;br /&gt;
* overlays&lt;br /&gt;
* resting&lt;br /&gt;
* side&lt;br /&gt;
* type&lt;br /&gt;
* unit_description&lt;br /&gt;
* unrenamable&lt;br /&gt;
* upkeep&lt;br /&gt;
* x&lt;br /&gt;
* y&lt;br /&gt;
* zoc&lt;br /&gt;
* [movement_costs]&lt;br /&gt;
* [defense]&lt;br /&gt;
* [resistance]&lt;br /&gt;
* [variables]&lt;br /&gt;
* [status]&lt;br /&gt;
* [attack]&lt;br /&gt;
* [modifications_description]&lt;br /&gt;
* [modifications]&lt;br /&gt;
&lt;br /&gt;
These values are all children of the stored unit variable (it is a [[VariablesWML#Container|container]] variable) and the bracketed values (movement_costs, defense, etc.) are, themselves, container variables. Example:&lt;br /&gt;
 [set_variable]&lt;br /&gt;
     name=unit_store.status.poisoned&lt;br /&gt;
     value=yes&lt;br /&gt;
 [/set_variable]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[VariablesWML]]&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;br /&gt;
[[Category: ActionsWML]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=28178</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=28178"/>
		<updated>2009-02-03T17:26:14Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (pending major release, Wesnoth 1.5.8) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld, and he has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
A former bug existing in multiplayer scenarios that put a halt to development of Wesband has been fixed. The road for continuing Wesband is now open. Unfortunately, Dov has been missing in action since about August of '08, so it's up to me to continue. I've done a lot with Wesband, maybe in some directions Dov wouldn't like, but the progress is happening. I will soon make a release of it with Modular RPG that will be a working version for others to test.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. &lt;br /&gt;
&lt;br /&gt;
== WesSaga (none released, Wesnoth 1.5.8) ==&lt;br /&gt;
''Objectives'':&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=13&amp;amp;t=23280 This is an RPG I would love to see.] WesSaga is how I plan to fulfill my own request. &lt;br /&gt;
&lt;br /&gt;
The idea is to procedurally make a map and plop players on it. The map will have towns, nations, factions, units, environments, etc. that will interact with itself. Players will interact with those forces, creating further situations to interact with. &lt;br /&gt;
&lt;br /&gt;
Imagine this: Players roll into town as adventurers. They discover Goblins raiding their town every so often. Maybe the players defend the town from the raids, or maybe they go to the source of the raids. At the source, they find an Orcish army is sweeping through the land. Defending the town might have make it strong enough to resist, or maybe not. Maybe the players have to flee the town to find a capital of human civilization in the area, and try to convince them to prepare for the incoming army. &lt;br /&gt;
&lt;br /&gt;
Plot points could be made randomly and procedurally. I think of how Nethack makes random rooms. Some are dead ends, others are one of the, but not the only, ways to the floor's exit. I think this could be done with plot and storyline. This project will see if I am right.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I've made a human town system that interacts with the land and has a rudimentary trading system within the village. The concepts are just forming in my mind now. What needs to happen next is to have villages that grow, spread, interact with other friendly villages and defend itself against monsters.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Wesband is moving right along, so I'm not working on this so much. When Wesband is mostly done with, I'll get back to this. Of course, any work I do with Modular RPG while working on Wesband will always help this project.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=28177</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=28177"/>
		<updated>2009-02-03T17:07:52Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld, and he has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
A former bug existing in multiplayer scenarios that put a halt to development of Wesband has been fixed. The road for continuing Wesband is now open. Unfortunately, Dov has been missing in action since about August of '08, so it's up to me to continue. I've done a lot with Wesband, maybe in some directions Dov wouldn't like, but the progress is happening. I will soon make a release of it with Modular RPG that will be a working version for others to test.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. I hope to have a release in the next couple weeks.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=WML_Abilities&amp;diff=28046</id>
		<title>WML Abilities</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=WML_Abilities&amp;diff=28046"/>
		<updated>2009-01-21T12:55:54Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: Edit in Mind Flay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Remember that you must include the WML ability code in every scenario where you intend them to work. Or include them in the unit file inside the [unit] tag.&lt;br /&gt;
&lt;br /&gt;
Some abilities require macros from [[WML_Utilities|Utilities]]. &lt;br /&gt;
&lt;br /&gt;
=== Knockback  ===&lt;br /&gt;
&lt;br /&gt;
When a unit is hit with a ''knockback'' attack, it is immediately pushed one hex away from the attacker, at which point the combat ends. Exception: units in villages can't be knocked out of them.&lt;br /&gt;
&lt;br /&gt;
Examples that give ''knockback'' for every Drake Glider on their slam attack, and for the Shock Trooper named Jane:&lt;br /&gt;
 {KNOCKBACK (type=Drake Glider) slam}&lt;br /&gt;
 {KNOCKBACK description=Jane mace}&lt;br /&gt;
&lt;br /&gt;
Requires the macro ''OPPOSITE_SIDE''.&lt;br /&gt;
&lt;br /&gt;
 #define KNOCKBACK FILTER WEAPON&lt;br /&gt;
     [event]&lt;br /&gt;
         name=attacker_hits&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             {FILTER}&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         [special_filter]&lt;br /&gt;
             weapon={WEAPON}&lt;br /&gt;
         [/special_filter]&lt;br /&gt;
 &lt;br /&gt;
         [sound]&lt;br /&gt;
             name=ghoul-hit.wav&lt;br /&gt;
         [/sound]&lt;br /&gt;
 &lt;br /&gt;
         {OPPOSITE_SIDE $x2 $y2 $x1 $y1 target_hex}&lt;br /&gt;
 &lt;br /&gt;
         [store_locations]&lt;br /&gt;
             x,y=$x2,$y2&lt;br /&gt;
             terrain=AaBbDeLptUVvYZ&lt;br /&gt;
             variable=defender_in_village&lt;br /&gt;
         [/store_locations]&lt;br /&gt;
         [if]&lt;br /&gt;
             [have_unit]&lt;br /&gt;
                x,y=$target_hex.x,$target_hex.y&lt;br /&gt;
             [/have_unit]&lt;br /&gt;
             [else]&lt;br /&gt;
                 {IF_VAR defender_in_village.length not_equals 1 (&lt;br /&gt;
                     [then]&lt;br /&gt;
                         {STORE_UNIT_VAR x,y=$x2,$y2 side side_of_defender}&lt;br /&gt;
 &lt;br /&gt;
                         [teleport]&lt;br /&gt;
                             [filter]&lt;br /&gt;
                                 x,y=$x2,$y2&lt;br /&gt;
                             [/filter]&lt;br /&gt;
 &lt;br /&gt;
                             x,y=$target_hex.x,$target_hex.y&lt;br /&gt;
                         [/teleport]&lt;br /&gt;
 &lt;br /&gt;
                         [capture_village]&lt;br /&gt;
                             side=$side_of_defender&lt;br /&gt;
                             x,y=$target_hex.x,$target_hex.y&lt;br /&gt;
                         [/capture_village]&lt;br /&gt;
 &lt;br /&gt;
                         {CLEAR_VARIABLE side_of_defender}&lt;br /&gt;
                     [/then]&lt;br /&gt;
                 )}&lt;br /&gt;
             [/else]&lt;br /&gt;
         [/if]&lt;br /&gt;
 &lt;br /&gt;
         {CLEAR_VARIABLE target_hex}&lt;br /&gt;
         {CLEAR_VARIABLE defender_in_village}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
=== Charm ===&lt;br /&gt;
&lt;br /&gt;
When a unit is hit with a ''charm'' attack, it instantly jumps to the attacker's side, and returns to it's original side at the beginning of that side's turn. A charmed unit has 1 movement point and can attack.&lt;br /&gt;
&lt;br /&gt;
Example that makes all Troll Whelps have charm on their attack:&lt;br /&gt;
&lt;br /&gt;
 {CHARM (type=Troll Whelp) fist}&lt;br /&gt;
&lt;br /&gt;
 #define CHARM FILTER WEAPON&lt;br /&gt;
     [event]&lt;br /&gt;
         name=attacker_hits&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             {FILTER}&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         [special_filter]&lt;br /&gt;
             weapon={WEAPON}&lt;br /&gt;
         [/special_filter]&lt;br /&gt;
 &lt;br /&gt;
         {STORE_UNIT_VAR x,y=$x1,$y1 side charmer_side}&lt;br /&gt;
         {STORE_UNIT_VAR x,y=$x2,$y2 side charmed_side}&lt;br /&gt;
 &lt;br /&gt;
         {IF_VAR charmer_side not_equals $charmed_side (&lt;br /&gt;
             [then]&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 variables.real_side $charmed_side}&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 side $charmer_side}&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 moves 1}&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 attacks_left 1}&lt;br /&gt;
 &lt;br /&gt;
                 {VARIABLE_OP varname format &amp;quot;side_$charmed_side|_units_charmed&amp;quot;}&lt;br /&gt;
                 {VARIABLE $varname yes}&lt;br /&gt;
 &lt;br /&gt;
                 {CLEAR_VARIABLE varname}&lt;br /&gt;
             [/then]&lt;br /&gt;
         )}&lt;br /&gt;
 &lt;br /&gt;
         {CLEAR_VARIABLE charmer_side}&lt;br /&gt;
         {CLEAR_VARIABLE charmed_side}&lt;br /&gt;
     [/event]&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=side turn&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         {VARIABLE_OP this_side_charmed to_variable &amp;quot;side_$side_number|_units_charmed&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
         {IF_VAR this_side_charmed equals yes (&lt;br /&gt;
             [then]&lt;br /&gt;
                 [store_unit]&lt;br /&gt;
                     [filter]&lt;br /&gt;
                         [not]&lt;br /&gt;
                             side=$side_number&lt;br /&gt;
                         [/not]&lt;br /&gt;
                     [/filter]&lt;br /&gt;
 &lt;br /&gt;
                     variable=possibly_charmed&lt;br /&gt;
                     kill=no&lt;br /&gt;
                 [/store_unit]&lt;br /&gt;
 &lt;br /&gt;
                 {FOREACH possibly_charmed i}&lt;br /&gt;
                     {VARIABLE_OP real_side format &amp;quot;0$possibly_charmed[$i].variables.real_side&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
                     {IF_VAR real_side not_equals &amp;quot;0&amp;quot; (&lt;br /&gt;
                         [then]&lt;br /&gt;
                             {IF_VAR side_number equals $possibly_charmed[$i].variables.real_side (&lt;br /&gt;
                                 [then]&lt;br /&gt;
                                     {CLEAR_VARIABLE possibly_charmed[$i].variables.real_side}&lt;br /&gt;
                                     {VARIABLE possibly_charmed[$i].side $side_number}&lt;br /&gt;
 &lt;br /&gt;
                                     [unstore_unit]&lt;br /&gt;
                                         variable=possibly_charmed[$i]&lt;br /&gt;
                                         find_vacant=no&lt;br /&gt;
                                     [/unstore_unit]&lt;br /&gt;
                                 [/then]&lt;br /&gt;
                             )}&lt;br /&gt;
                         [/then]&lt;br /&gt;
                     )}&lt;br /&gt;
                 {NEXT i}&lt;br /&gt;
 &lt;br /&gt;
                 {CLEAR_VARIABLE possibly_charmed}&lt;br /&gt;
             [/then]&lt;br /&gt;
         )}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
=== Bloodlust ===&lt;br /&gt;
&lt;br /&gt;
Bloodlust is a very simple ability. If a unit that has bloodlust kills an enemy unit when attacking, it may attack again, provided that there are more enemy units adjacent to it.&lt;br /&gt;
&lt;br /&gt;
This would give the bloodlust ability to all Dwarvish Ulfserkers (making them insanely powerful):&lt;br /&gt;
&lt;br /&gt;
 {BLOODLUST (type=Dwarvish Ulfserker)}&lt;br /&gt;
&lt;br /&gt;
 #define BLOODLUST FILTER&lt;br /&gt;
     [event]&lt;br /&gt;
         name=die&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         [filter_second]&lt;br /&gt;
             {FILTER}&lt;br /&gt;
         [/filter_second]&lt;br /&gt;
 &lt;br /&gt;
         {MODIFY_UNIT x,y=$x2,$y2 moves 0}&lt;br /&gt;
         {MODIFY_UNIT x,y=$x2,$y2 attacks_left 1}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
=== Pickpocket ===&lt;br /&gt;
&lt;br /&gt;
This special could also be called loot. When a unit with this attack special sucessfully hits an enemy unit, it gains a certain amount of gold - say 10.&lt;br /&gt;
&lt;br /&gt;
To do this, use this code:&lt;br /&gt;
&lt;br /&gt;
 #define WEAPON_SPECIAL_PICKPOCKET&lt;br /&gt;
     [damage]&lt;br /&gt;
         id=pickpocket&lt;br /&gt;
         name=&amp;quot;Pickpocket&amp;quot;&lt;br /&gt;
         description=&amp;quot;When used offensively, this attack gives 10 gold to the attacker on every successful hit.&amp;quot; &lt;br /&gt;
         multiply=1&lt;br /&gt;
     [/damage]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Then put this event in your scenario:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=attacker_hits&lt;br /&gt;
     first_time_only=no&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=$side_number&lt;br /&gt;
 	 canrecruit=yes&lt;br /&gt;
     [/filter]&lt;br /&gt;
     [special_filter]&lt;br /&gt;
         weapon=pickpocket gloves&lt;br /&gt;
     [/special_filter]&lt;br /&gt;
     [gold]&lt;br /&gt;
         side=$side_number&lt;br /&gt;
 	 amount=10&lt;br /&gt;
     [/gold]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Then give the unit you want to have the &amp;quot;pickpocket&amp;quot; special something like this:&lt;br /&gt;
&lt;br /&gt;
 [object]&lt;br /&gt;
     silent=yes&lt;br /&gt;
     [effect]&lt;br /&gt;
         apply_to=new_attack &lt;br /&gt;
 	 name=pickpocket gloves&lt;br /&gt;
 	 type=impact&lt;br /&gt;
 	 range=melee &lt;br /&gt;
 	 damage=3&lt;br /&gt;
 	 number=3 &lt;br /&gt;
 	 [specials]&lt;br /&gt;
 	     {WEAPON_SPECIAL_PICKPOCKET}&lt;br /&gt;
 	 [/specials]&lt;br /&gt;
     [/effect]&lt;br /&gt;
 [/object]&lt;br /&gt;
&lt;br /&gt;
===Soultaker===&lt;br /&gt;
&lt;br /&gt;
Any unit with this ability will gain an additional point of damage per strike every time it kills an enemy. Coder(s) unknown, made for Melon's Youkai faction (http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=20100).&lt;br /&gt;
&lt;br /&gt;
To give a unit the ability, place the following in any .cfg file loaded by the campaign or era:&lt;br /&gt;
&lt;br /&gt;
 #define ABILITY_SOULTAKER&lt;br /&gt;
 	[dummy]&lt;br /&gt;
 		id=soultaker&lt;br /&gt;
 		name= _ &amp;quot;soultaker&amp;quot;&lt;br /&gt;
 		description=_ &amp;quot;Soultaker:&lt;br /&gt;
 This unit gains an additional point added to its maximum damage whenever it kills a living unit.&amp;quot;&lt;br /&gt;
 	[/dummy]&lt;br /&gt;
 &lt;br /&gt;
 [/abilities]&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=die&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		[not]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[status]&lt;br /&gt;
 					not_living=&amp;quot;yes&amp;quot;&lt;br /&gt;
 				[/status]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 		[/not]&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 &lt;br /&gt;
 	[filter_second]&lt;br /&gt;
 		ability=soultaker&lt;br /&gt;
 	[/filter_second]&lt;br /&gt;
 &lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=second_unit&lt;br /&gt;
 		{COLOR_HEAL}&lt;br /&gt;
 		text= _ &amp;quot;+1 damage&amp;quot;&lt;br /&gt;
 		find_vacant=no&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 &lt;br /&gt;
 	[object]&lt;br /&gt;
 		silent=yes&lt;br /&gt;
 		duration=forever&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x2,$y2&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 &lt;br /&gt;
 		[effect]&lt;br /&gt;
 			apply_to=attack&lt;br /&gt;
 			range=melee&lt;br /&gt;
 			increase_damage=1&lt;br /&gt;
 			increase=1&lt;br /&gt;
 		[/effect]&lt;br /&gt;
 	[/object]&lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 [+abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
And the following in the unit's [abilities] tag:&lt;br /&gt;
&lt;br /&gt;
 	{ABILITY_SOULTAKER}&lt;br /&gt;
&lt;br /&gt;
===Charm (Type 2)===&lt;br /&gt;
&lt;br /&gt;
An attack special. If the attack hits, and the target is level 0 or 1, the target is converted to the attacker's side. However, if it misses, the attacker is converted to the defender's side. Maintainer is krotop, using 1.4.X syntax, made for Melon's Youkai faction (http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=22539)&lt;br /&gt;
&lt;br /&gt;
 #define ABILITY_CHARM WEAPON&lt;br /&gt;
 # dummy ability, defining the ability id for the next filters&lt;br /&gt;
 [dummy]&lt;br /&gt;
 	id=charm_attack&lt;br /&gt;
 [/dummy]&lt;br /&gt;
 &lt;br /&gt;
 [/abilities]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # event that creates a variable at the beginning of the fight to check if the attacker hit at least once by the end.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		ability=charm_attack&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon={WEAPON}&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x1,$y1&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]	&lt;br /&gt;
 	[set_variable]&lt;br /&gt;
 		name=unit_att_with_charm.variables.charm_has_worked&lt;br /&gt;
 		value=no&lt;br /&gt;
 	[/set_variable]	&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	{CLEAR_VARIABLE unit_att_with_charm}&lt;br /&gt;
 	&lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # event that creates a &amp;quot;charm has worked&amp;quot; variable&lt;br /&gt;
 # and sets it to &amp;quot;yes&amp;quot; if the attacker hits at least once.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attacker_hits&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		ability=charm_attack&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon={WEAPON}&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x1,$y1&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]&lt;br /&gt;
 	[set_variable]&lt;br /&gt;
 		name=unit_att_with_charm.variables.charm_has_worked&lt;br /&gt;
 		value=yes&lt;br /&gt;
 	[/set_variable]&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	{CLEAR_VARIABLE unit_att_with_charm}&lt;br /&gt;
 &lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # event that shifts a unit to the other side&lt;br /&gt;
 # if the defending unit&lt;br /&gt;
 #       - was not lvl1 or lvl0 &lt;br /&gt;
 #       - and was not a recruiting unit &lt;br /&gt;
 #       - and was a not a &amp;quot;non-living&amp;quot; creature&lt;br /&gt;
 # then :&lt;br /&gt;
 # -&amp;gt; if the attacker missed all attacks, it goes to the defender side.&lt;br /&gt;
 # -&amp;gt; if the attacker hit once at least, the defender goes to the attacker side.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack_end&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		ability=charm_attack&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon={WEAPON}&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	[filter_second]&lt;br /&gt;
 		canrecruit=no&lt;br /&gt;
 		[and]&lt;br /&gt;
 			level=0&lt;br /&gt;
 			[or]&lt;br /&gt;
 			level=1&lt;br /&gt;
 			[/or]&lt;br /&gt;
 		[/and]&lt;br /&gt;
 		[and]&lt;br /&gt;
 			[not]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[status]&lt;br /&gt;
 					not_living=yes&lt;br /&gt;
 				[/status]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 			[/not]&lt;br /&gt;
 		[/and]&lt;br /&gt;
 	[/filter_second]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x1,$y1&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=charmer&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x2,$y2&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=charmed&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	[if]&lt;br /&gt;
 		[variable]&lt;br /&gt;
 			name=charmer.variables.charm_has_worked&lt;br /&gt;
 			equals=no&lt;br /&gt;
 		[/variable]&lt;br /&gt;
 		[then]&lt;br /&gt;
 			[set_variable]&lt;br /&gt;
 				name=charmer.side&lt;br /&gt;
 				value=$charmed.side&lt;br /&gt;
 			[/set_variable]&lt;br /&gt;
 		[/then]&lt;br /&gt;
 		[else]&lt;br /&gt;
 			[set_variable]&lt;br /&gt;
 				name=charmed.side&lt;br /&gt;
 				value=$charmer.side&lt;br /&gt;
 			[/set_variable]&lt;br /&gt;
 		[/else]&lt;br /&gt;
 	[/if]&lt;br /&gt;
 &lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=charmer&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=charmed&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	{CLEAR_VARIABLE charmer}&lt;br /&gt;
 	{CLEAR_VARIABLE charmed}&lt;br /&gt;
 	&lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 [+abilities]&lt;br /&gt;
 &lt;br /&gt;
 #enddef&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #define WEAPON_SPECIAL_CHARM&lt;br /&gt;
 # dummy weapon special used to describe the effect to the user&lt;br /&gt;
 &lt;br /&gt;
 [damage]&lt;br /&gt;
 	id=weapon_charm&lt;br /&gt;
 	name= _ &amp;quot;charm&amp;quot;&lt;br /&gt;
 	name_inactive= _ &amp;quot;charm&amp;quot;&lt;br /&gt;
 	description= _ &amp;quot;Charm : &lt;br /&gt;
 Turns a living level 1 or level 0 unit to your side. Beware  if all of your attacks miss, the charm user turns to the defender side, even if it is your leader. You can not charm an ennemy leader or a non-living creature.&amp;quot; &lt;br /&gt;
 	description_inactive= _ &amp;quot;Charm : &lt;br /&gt;
 Turns a living level 1 or level 0 unit to your side. Beware  if all of your attacks miss, the charm user turns to the defender side, even if it is your leader. You can not charm an ennemy leader or a non-living creature.&amp;quot; &lt;br /&gt;
 	apply_to=opponent&lt;br /&gt;
 [/damage]&lt;br /&gt;
 &lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
== Works ==&lt;br /&gt;
&lt;br /&gt;
Unit with ability ''works'' will produce 1 gold per turn.&lt;br /&gt;
&lt;br /&gt;
Put this macro into you code before the last piece of code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define ABILITY_WORKS&lt;br /&gt;
     [leadership]&lt;br /&gt;
          value=0&lt;br /&gt;
          id=peasant_works&lt;br /&gt;
          cumulative=no&lt;br /&gt;
          name=&amp;quot;works&amp;quot;&lt;br /&gt;
          description= _ &amp;quot;Works:&lt;br /&gt;
This unit produces 1 gold per turn.&amp;quot;&lt;br /&gt;
    [/leadership]&lt;br /&gt;
 #enddef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put this event into your code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[event]&lt;br /&gt;
	name=side turn&lt;br /&gt;
	first_time_only=no&lt;br /&gt;
	[store_unit]&lt;br /&gt;
		[filter]&lt;br /&gt;
	            #your filter here... for example type=Peasant&lt;br /&gt;
		[/filter]&lt;br /&gt;
		variable=worker&lt;br /&gt;
		kill=no&lt;br /&gt;
	[/store_unit]&lt;br /&gt;
&lt;br /&gt;
		{FOREACH worker i}&lt;br /&gt;
	&lt;br /&gt;
			 [gold]&lt;br /&gt;
                            side=$side_number &lt;br /&gt;
                            amount=1&lt;br /&gt;
                         [/gold] &lt;br /&gt;
			[unstore_unit]&lt;br /&gt;
				variable=worker[$i]&lt;br /&gt;
				text=&amp;quot;1&amp;quot;&lt;br /&gt;
			        red,green,blue=255,255,0 &lt;br /&gt;
			[/unstore_unit]&lt;br /&gt;
				&lt;br /&gt;
		{NEXT i}&lt;br /&gt;
	&lt;br /&gt;
	{CLEAR_VARIABLE worker}&lt;br /&gt;
 [/event]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the unit the ability like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 [object]&lt;br /&gt;
     silent=yes&lt;br /&gt;
     [effect]&lt;br /&gt;
	apply_to=new_ability&lt;br /&gt;
           [abilities]&lt;br /&gt;
             {ABILITY_WORKS}&lt;br /&gt;
           [/abilities]&lt;br /&gt;
     [/effect]&lt;br /&gt;
 [/object]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mind Flay  ==&lt;br /&gt;
&lt;br /&gt;
The weapon special gives an attacker 1 point of exp taken from a defender for each hit. This will violate minimum experience (i.e. defender can go below 0). &lt;br /&gt;
&lt;br /&gt;
Give this special to the attack(s) you want it to have. &lt;br /&gt;
 #define WEAPON_SPECIAL_MIND_FLAY&lt;br /&gt;
    [damage]&lt;br /&gt;
        id=mind_flay&lt;br /&gt;
        name=&amp;quot;Mind Flay&amp;quot;&lt;br /&gt;
        description=&amp;quot;When used offensively, each hit of the mind flay attack takes 1 point of experience from the defender and gives it to the attacker.&amp;quot; &lt;br /&gt;
        multiply=1&lt;br /&gt;
    [/damage]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Include these events into your scenario.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon=mind flay&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	{VARIABLE hit_number 0}&lt;br /&gt;
 [/event]&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attacker_hits&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon=mind flay&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	{VARIABLE_OP hit_number add 1}&lt;br /&gt;
 [/event]&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack_end&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon=mind flay&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	{VARIABLE_OP second_unit.experience add -$hit_number}&lt;br /&gt;
 	{VARIABLE_OP unit.experience add $hit_number}&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=unit&lt;br /&gt;
 		find_vacant=no&lt;br /&gt;
 		text=$hit_number&lt;br /&gt;
 		blue=255&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=second_unit&lt;br /&gt;
 		find_vacant=no&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	{CLEAR_VARIABLE hit_number}&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Note: In dev version substitute &amp;quot;name=&amp;quot; instead of &amp;quot;weapon=&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Initiative  ==&lt;br /&gt;
&lt;br /&gt;
Initiative is an aura ability. Much like Leadership, it effects adjacent allies but not the unit itself.&lt;br /&gt;
&lt;br /&gt;
 #define AURA_INITIATIVE TYPE&lt;br /&gt;
 [dummy]&lt;br /&gt;
 	id=initiative&lt;br /&gt;
 	name= _ &amp;quot;initiative&amp;quot;&lt;br /&gt;
 	description= _ &amp;quot;Initiative:&lt;br /&gt;
 Adjacent allies are granted Firststrike with all weapons.&amp;quot;&lt;br /&gt;
 [/dummy]&lt;br /&gt;
 [/abilities]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter]&lt;br /&gt;
 			[filter_adjacent]&lt;br /&gt;
 				type={TYPE}&lt;br /&gt;
 				is_enemy=no&lt;br /&gt;
 			[/filter_adjacent]&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH unit.attack i}&lt;br /&gt;
 			{VARIABLE unit.attack[$i].specials.firststrike.id &amp;quot;firststrike&amp;quot;}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter_second]&lt;br /&gt;
 			[filter_adjacent]&lt;br /&gt;
 				type={TYPE}&lt;br /&gt;
 				is_enemy=no&lt;br /&gt;
 			[/filter_adjacent]&lt;br /&gt;
 		[/filter_second]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH second_unit.attack i}&lt;br /&gt;
 			{VARIABLE second_unit.attack[$i].specials.firststrike.id &amp;quot;firststrike&amp;quot;}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=second_unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack_end&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[attack]&lt;br /&gt;
 					[specials]&lt;br /&gt;
 						[firststrike]&lt;br /&gt;
 							id=firststrike&lt;br /&gt;
 						[/firststrike]&lt;br /&gt;
 					[/specials]&lt;br /&gt;
 				[/attack]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH unit.attack i}&lt;br /&gt;
 			{CLEAR_VARIABLE unit.attack[$i].specials.firststrike}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack_end&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter_second]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[attack]&lt;br /&gt;
 					[specials]&lt;br /&gt;
 						[firststrike]&lt;br /&gt;
 							id=firststrike&lt;br /&gt;
 						[/firststrike]&lt;br /&gt;
 					[/specials]&lt;br /&gt;
 				[/attack]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 		[/filter_second]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH second_unit.attack i}&lt;br /&gt;
 			{CLEAR_VARIABLE second_unit.attack[$i].specials.firststrike}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=second_unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 [+abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
A WML filter may be added instead of the type if you want some units of that type to not have the ability.&lt;br /&gt;
&lt;br /&gt;
== Blitz ==&lt;br /&gt;
&lt;br /&gt;
Blitz is an aura ability. Much like Leadership, it effects adjacent allies but not the unit itself.&lt;br /&gt;
&lt;br /&gt;
 #define AURA_BLITZ TYPE&lt;br /&gt;
 [dummy]&lt;br /&gt;
 	id=blitz	&lt;br /&gt;
 	name= _ &amp;quot;blitz&amp;quot;&lt;br /&gt;
 	description= _ &amp;quot;Blitz:&lt;br /&gt;
 Allies that start their turn adjacent to this unit are granted Skirmisher for that turn.&amp;quot;&lt;br /&gt;
 [/dummy]&lt;br /&gt;
 [/abilities]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=side turn&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 		&lt;br /&gt;
 		[store_unit]&lt;br /&gt;
 			[filter]&lt;br /&gt;
 				&lt;br /&gt;
 				[wml_filter]&lt;br /&gt;
 					blitzed=1&lt;br /&gt;
 				[/wml_filter]&lt;br /&gt;
 			[/filter]&lt;br /&gt;
 			variable=blitz_refresh&lt;br /&gt;
 		[/store_unit]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH blitz_refresh i}&lt;br /&gt;
 			{CLEAR_VARIABLE blitz_refresh[$i].abilities.skirmisher}&lt;br /&gt;
 			{VARIABLE blitz_refresh[$i].blitzed 0}&lt;br /&gt;
 			[unstore_unit]&lt;br /&gt;
 				variable=blitz_refresh[$i]&lt;br /&gt;
 			[/unstore_unit]&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 &lt;br /&gt;
 		[store_unit]&lt;br /&gt;
 			[filter]&lt;br /&gt;
 				side=$side_number&lt;br /&gt;
 				[filter_adjacent]&lt;br /&gt;
 					type={TYPE}&lt;br /&gt;
 					is_enemy=no&lt;br /&gt;
 				[/filter_adjacent]&lt;br /&gt;
 			[/filter]&lt;br /&gt;
 			variable=blitzed&lt;br /&gt;
 		[/store_unit]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH blitzed i}&lt;br /&gt;
 			[if]&lt;br /&gt;
 				[variable]&lt;br /&gt;
 					name=blitzed[$i].abilities.skirmisher.id&lt;br /&gt;
 					not_equals=&amp;quot;skirmisher&amp;quot;&lt;br /&gt;
 				[/variable]&lt;br /&gt;
 				[then]&lt;br /&gt;
 					{VARIABLE blitzed[$i].blitzed 1}&lt;br /&gt;
 					{VARIABLE blitzed[$i].abilities.skirmisher.id skirmisher}&lt;br /&gt;
 					{VARIABLE blitzed[$i].abilities.skirmisher.name &amp;quot;skirmisher&amp;quot;}&lt;br /&gt;
 					{VARIABLE blitzed[$i].abilities.skirmisher.description  &amp;quot;Skirmisher:&lt;br /&gt;
 This unit is skilled in moving past enemies quickly, and ignores all enemy Zones of Control.&amp;quot;}&lt;br /&gt;
 					[unstore_unit]&lt;br /&gt;
 						variable=blitzed[$i]&lt;br /&gt;
 					[/unstore_unit]&lt;br /&gt;
 				[/then]&lt;br /&gt;
 			[/if]&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 	[/event]&lt;br /&gt;
 [+abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
A WML filter may be added instead of the type if you want some units of that type to not have the ability.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[UsefulWMLFragments]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: UsefulWMLFragments]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=WML_Abilities&amp;diff=27936</id>
		<title>WML Abilities</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=WML_Abilities&amp;diff=27936"/>
		<updated>2009-01-12T19:46:51Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: added mind flay (raid in abilities era), initiative,blitz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Remember that you must include the WML ability code in every scenario where you intend them to work. Or include them in the unit file inside the [unit] tag.&lt;br /&gt;
&lt;br /&gt;
Some abilities require macros from [[WML_Utilities|Utilities]]. &lt;br /&gt;
&lt;br /&gt;
=== Knockback  ===&lt;br /&gt;
&lt;br /&gt;
When a unit is hit with a ''knockback'' attack, it is immediately pushed one hex away from the attacker, at which point the combat ends. Exception: units in villages can't be knocked out of them.&lt;br /&gt;
&lt;br /&gt;
Examples that give ''knockback'' for every Drake Glider on their slam attack, and for the Shock Trooper named Jane:&lt;br /&gt;
 {KNOCKBACK (type=Drake Glider) slam}&lt;br /&gt;
 {KNOCKBACK description=Jane mace}&lt;br /&gt;
&lt;br /&gt;
Requires the macro ''OPPOSITE_SIDE''.&lt;br /&gt;
&lt;br /&gt;
 #define KNOCKBACK FILTER WEAPON&lt;br /&gt;
     [event]&lt;br /&gt;
         name=attacker_hits&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             {FILTER}&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         [special_filter]&lt;br /&gt;
             weapon={WEAPON}&lt;br /&gt;
         [/special_filter]&lt;br /&gt;
 &lt;br /&gt;
         [sound]&lt;br /&gt;
             name=ghoul-hit.wav&lt;br /&gt;
         [/sound]&lt;br /&gt;
 &lt;br /&gt;
         {OPPOSITE_SIDE $x2 $y2 $x1 $y1 target_hex}&lt;br /&gt;
 &lt;br /&gt;
         [store_locations]&lt;br /&gt;
             x,y=$x2,$y2&lt;br /&gt;
             terrain=AaBbDeLptUVvYZ&lt;br /&gt;
             variable=defender_in_village&lt;br /&gt;
         [/store_locations]&lt;br /&gt;
         [if]&lt;br /&gt;
             [have_unit]&lt;br /&gt;
                x,y=$target_hex.x,$target_hex.y&lt;br /&gt;
             [/have_unit]&lt;br /&gt;
             [else]&lt;br /&gt;
                 {IF_VAR defender_in_village.length not_equals 1 (&lt;br /&gt;
                     [then]&lt;br /&gt;
                         {STORE_UNIT_VAR x,y=$x2,$y2 side side_of_defender}&lt;br /&gt;
 &lt;br /&gt;
                         [teleport]&lt;br /&gt;
                             [filter]&lt;br /&gt;
                                 x,y=$x2,$y2&lt;br /&gt;
                             [/filter]&lt;br /&gt;
 &lt;br /&gt;
                             x,y=$target_hex.x,$target_hex.y&lt;br /&gt;
                         [/teleport]&lt;br /&gt;
 &lt;br /&gt;
                         [capture_village]&lt;br /&gt;
                             side=$side_of_defender&lt;br /&gt;
                             x,y=$target_hex.x,$target_hex.y&lt;br /&gt;
                         [/capture_village]&lt;br /&gt;
 &lt;br /&gt;
                         {CLEAR_VARIABLE side_of_defender}&lt;br /&gt;
                     [/then]&lt;br /&gt;
                 )}&lt;br /&gt;
             [/else]&lt;br /&gt;
         [/if]&lt;br /&gt;
 &lt;br /&gt;
         {CLEAR_VARIABLE target_hex}&lt;br /&gt;
         {CLEAR_VARIABLE defender_in_village}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
=== Charm ===&lt;br /&gt;
&lt;br /&gt;
When a unit is hit with a ''charm'' attack, it instantly jumps to the attacker's side, and returns to it's original side at the beginning of that side's turn. A charmed unit has 1 movement point and can attack.&lt;br /&gt;
&lt;br /&gt;
Example that makes all Troll Whelps have charm on their attack:&lt;br /&gt;
&lt;br /&gt;
 {CHARM (type=Troll Whelp) fist}&lt;br /&gt;
&lt;br /&gt;
 #define CHARM FILTER WEAPON&lt;br /&gt;
     [event]&lt;br /&gt;
         name=attacker_hits&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             {FILTER}&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         [special_filter]&lt;br /&gt;
             weapon={WEAPON}&lt;br /&gt;
         [/special_filter]&lt;br /&gt;
 &lt;br /&gt;
         {STORE_UNIT_VAR x,y=$x1,$y1 side charmer_side}&lt;br /&gt;
         {STORE_UNIT_VAR x,y=$x2,$y2 side charmed_side}&lt;br /&gt;
 &lt;br /&gt;
         {IF_VAR charmer_side not_equals $charmed_side (&lt;br /&gt;
             [then]&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 variables.real_side $charmed_side}&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 side $charmer_side}&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 moves 1}&lt;br /&gt;
                 {MODIFY_UNIT x,y=$x2,$y2 attacks_left 1}&lt;br /&gt;
 &lt;br /&gt;
                 {VARIABLE_OP varname format &amp;quot;side_$charmed_side|_units_charmed&amp;quot;}&lt;br /&gt;
                 {VARIABLE $varname yes}&lt;br /&gt;
 &lt;br /&gt;
                 {CLEAR_VARIABLE varname}&lt;br /&gt;
             [/then]&lt;br /&gt;
         )}&lt;br /&gt;
 &lt;br /&gt;
         {CLEAR_VARIABLE charmer_side}&lt;br /&gt;
         {CLEAR_VARIABLE charmed_side}&lt;br /&gt;
     [/event]&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=side turn&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         {VARIABLE_OP this_side_charmed to_variable &amp;quot;side_$side_number|_units_charmed&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
         {IF_VAR this_side_charmed equals yes (&lt;br /&gt;
             [then]&lt;br /&gt;
                 [store_unit]&lt;br /&gt;
                     [filter]&lt;br /&gt;
                         [not]&lt;br /&gt;
                             side=$side_number&lt;br /&gt;
                         [/not]&lt;br /&gt;
                     [/filter]&lt;br /&gt;
 &lt;br /&gt;
                     variable=possibly_charmed&lt;br /&gt;
                     kill=no&lt;br /&gt;
                 [/store_unit]&lt;br /&gt;
 &lt;br /&gt;
                 {FOREACH possibly_charmed i}&lt;br /&gt;
                     {VARIABLE_OP real_side format &amp;quot;0$possibly_charmed[$i].variables.real_side&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
                     {IF_VAR real_side not_equals &amp;quot;0&amp;quot; (&lt;br /&gt;
                         [then]&lt;br /&gt;
                             {IF_VAR side_number equals $possibly_charmed[$i].variables.real_side (&lt;br /&gt;
                                 [then]&lt;br /&gt;
                                     {CLEAR_VARIABLE possibly_charmed[$i].variables.real_side}&lt;br /&gt;
                                     {VARIABLE possibly_charmed[$i].side $side_number}&lt;br /&gt;
 &lt;br /&gt;
                                     [unstore_unit]&lt;br /&gt;
                                         variable=possibly_charmed[$i]&lt;br /&gt;
                                         find_vacant=no&lt;br /&gt;
                                     [/unstore_unit]&lt;br /&gt;
                                 [/then]&lt;br /&gt;
                             )}&lt;br /&gt;
                         [/then]&lt;br /&gt;
                     )}&lt;br /&gt;
                 {NEXT i}&lt;br /&gt;
 &lt;br /&gt;
                 {CLEAR_VARIABLE possibly_charmed}&lt;br /&gt;
             [/then]&lt;br /&gt;
         )}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
=== Bloodlust ===&lt;br /&gt;
&lt;br /&gt;
Bloodlust is a very simple ability. If a unit that has bloodlust kills an enemy unit when attacking, it may attack again, provided that there are more enemy units adjacent to it.&lt;br /&gt;
&lt;br /&gt;
This would give the bloodlust ability to all Dwarvish Ulfserkers (making them insanely powerful):&lt;br /&gt;
&lt;br /&gt;
 {BLOODLUST (type=Dwarvish Ulfserker)}&lt;br /&gt;
&lt;br /&gt;
 #define BLOODLUST FILTER&lt;br /&gt;
     [event]&lt;br /&gt;
         name=die&lt;br /&gt;
         first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
         [filter_second]&lt;br /&gt;
             {FILTER}&lt;br /&gt;
         [/filter_second]&lt;br /&gt;
 &lt;br /&gt;
         {MODIFY_UNIT x,y=$x2,$y2 moves 0}&lt;br /&gt;
         {MODIFY_UNIT x,y=$x2,$y2 attacks_left 1}&lt;br /&gt;
     [/event]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
=== Pickpocket ===&lt;br /&gt;
&lt;br /&gt;
This special could also be called loot. When a unit with this attack special sucessfully hits an enemy unit, it gains a certain amount of gold - say 10.&lt;br /&gt;
&lt;br /&gt;
To do this, use this code:&lt;br /&gt;
&lt;br /&gt;
 #define WEAPON_SPECIAL_PICKPOCKET&lt;br /&gt;
     [damage]&lt;br /&gt;
         id=pickpocket&lt;br /&gt;
         name=&amp;quot;Pickpocket&amp;quot;&lt;br /&gt;
         description=&amp;quot;When used offensively, this attack gives 10 gold to the attacker on every successful hit.&amp;quot; &lt;br /&gt;
         multiply=1&lt;br /&gt;
     [/damage]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Then put this event in your scenario:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=attacker_hits&lt;br /&gt;
     first_time_only=no&lt;br /&gt;
     [filter]&lt;br /&gt;
         side=$side_number&lt;br /&gt;
 	 canrecruit=yes&lt;br /&gt;
     [/filter]&lt;br /&gt;
     [special_filter]&lt;br /&gt;
         weapon=pickpocket gloves&lt;br /&gt;
     [/special_filter]&lt;br /&gt;
     [gold]&lt;br /&gt;
         side=$side_number&lt;br /&gt;
 	 amount=10&lt;br /&gt;
     [/gold]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Then give the unit you want to have the &amp;quot;pickpocket&amp;quot; special something like this:&lt;br /&gt;
&lt;br /&gt;
 [object]&lt;br /&gt;
     silent=yes&lt;br /&gt;
     [effect]&lt;br /&gt;
         apply_to=new_attack &lt;br /&gt;
 	 name=pickpocket gloves&lt;br /&gt;
 	 type=impact&lt;br /&gt;
 	 range=melee &lt;br /&gt;
 	 damage=3&lt;br /&gt;
 	 number=3 &lt;br /&gt;
 	 [specials]&lt;br /&gt;
 	     {WEAPON_SPECIAL_PICKPOCKET}&lt;br /&gt;
 	 [/specials]&lt;br /&gt;
     [/effect]&lt;br /&gt;
 [/object]&lt;br /&gt;
&lt;br /&gt;
===Soultaker===&lt;br /&gt;
&lt;br /&gt;
Any unit with this ability will gain an additional point of damage per strike every time it kills an enemy. Coder(s) unknown, made for Melon's Youkai faction (http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=20100).&lt;br /&gt;
&lt;br /&gt;
To give a unit the ability, place the following in any .cfg file loaded by the campaign or era:&lt;br /&gt;
&lt;br /&gt;
 #define ABILITY_SOULTAKER&lt;br /&gt;
 	[dummy]&lt;br /&gt;
 		id=soultaker&lt;br /&gt;
 		name= _ &amp;quot;soultaker&amp;quot;&lt;br /&gt;
 		description=_ &amp;quot;Soultaker:&lt;br /&gt;
 This unit gains an additional point added to its maximum damage whenever it kills a living unit.&amp;quot;&lt;br /&gt;
 	[/dummy]&lt;br /&gt;
 &lt;br /&gt;
 [/abilities]&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=die&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		[not]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[status]&lt;br /&gt;
 					not_living=&amp;quot;yes&amp;quot;&lt;br /&gt;
 				[/status]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 		[/not]&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 &lt;br /&gt;
 	[filter_second]&lt;br /&gt;
 		ability=soultaker&lt;br /&gt;
 	[/filter_second]&lt;br /&gt;
 &lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=second_unit&lt;br /&gt;
 		{COLOR_HEAL}&lt;br /&gt;
 		text= _ &amp;quot;+1 damage&amp;quot;&lt;br /&gt;
 		find_vacant=no&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 &lt;br /&gt;
 	[object]&lt;br /&gt;
 		silent=yes&lt;br /&gt;
 		duration=forever&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x2,$y2&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 &lt;br /&gt;
 		[effect]&lt;br /&gt;
 			apply_to=attack&lt;br /&gt;
 			range=melee&lt;br /&gt;
 			increase_damage=1&lt;br /&gt;
 			increase=1&lt;br /&gt;
 		[/effect]&lt;br /&gt;
 	[/object]&lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 [+abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
And the following in the unit's [abilities] tag:&lt;br /&gt;
&lt;br /&gt;
 	{ABILITY_SOULTAKER}&lt;br /&gt;
&lt;br /&gt;
===Charm (Type 2)===&lt;br /&gt;
&lt;br /&gt;
An attack special. If the attack hits, and the target is level 0 or 1, the target is converted to the attacker's side. However, if it misses, the attacker is converted to the defender's side. Maintainer is krotop, using 1.4.X syntax, made for Melon's Youkai faction (http://www.wesnoth.org/forum/viewtopic.php?f=21&amp;amp;t=22539)&lt;br /&gt;
&lt;br /&gt;
 #define ABILITY_CHARM WEAPON&lt;br /&gt;
 # dummy ability, defining the ability id for the next filters&lt;br /&gt;
 [dummy]&lt;br /&gt;
 	id=charm_attack&lt;br /&gt;
 [/dummy]&lt;br /&gt;
 &lt;br /&gt;
 [/abilities]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # event that creates a variable at the beginning of the fight to check if the attacker hit at least once by the end.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		ability=charm_attack&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon={WEAPON}&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x1,$y1&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]	&lt;br /&gt;
 	[set_variable]&lt;br /&gt;
 		name=unit_att_with_charm.variables.charm_has_worked&lt;br /&gt;
 		value=no&lt;br /&gt;
 	[/set_variable]	&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	{CLEAR_VARIABLE unit_att_with_charm}&lt;br /&gt;
 	&lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # event that creates a &amp;quot;charm has worked&amp;quot; variable&lt;br /&gt;
 # and sets it to &amp;quot;yes&amp;quot; if the attacker hits at least once.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attacker_hits&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		ability=charm_attack&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon={WEAPON}&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x1,$y1&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]&lt;br /&gt;
 	[set_variable]&lt;br /&gt;
 		name=unit_att_with_charm.variables.charm_has_worked&lt;br /&gt;
 		value=yes&lt;br /&gt;
 	[/set_variable]&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=unit_att_with_charm&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	{CLEAR_VARIABLE unit_att_with_charm}&lt;br /&gt;
 &lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # event that shifts a unit to the other side&lt;br /&gt;
 # if the defending unit&lt;br /&gt;
 #       - was not lvl1 or lvl0 &lt;br /&gt;
 #       - and was not a recruiting unit &lt;br /&gt;
 #       - and was a not a &amp;quot;non-living&amp;quot; creature&lt;br /&gt;
 # then :&lt;br /&gt;
 # -&amp;gt; if the attacker missed all attacks, it goes to the defender side.&lt;br /&gt;
 # -&amp;gt; if the attacker hit once at least, the defender goes to the attacker side.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack_end&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	&lt;br /&gt;
 	[filter]&lt;br /&gt;
 		ability=charm_attack&lt;br /&gt;
 	[/filter]&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon={WEAPON}&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	[filter_second]&lt;br /&gt;
 		canrecruit=no&lt;br /&gt;
 		[and]&lt;br /&gt;
 			level=0&lt;br /&gt;
 			[or]&lt;br /&gt;
 			level=1&lt;br /&gt;
 			[/or]&lt;br /&gt;
 		[/and]&lt;br /&gt;
 		[and]&lt;br /&gt;
 			[not]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[status]&lt;br /&gt;
 					not_living=yes&lt;br /&gt;
 				[/status]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 			[/not]&lt;br /&gt;
 		[/and]&lt;br /&gt;
 	[/filter_second]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x1,$y1&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=charmer&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	[store_unit]&lt;br /&gt;
 		[filter]&lt;br /&gt;
 			x,y=$x2,$y2&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		variable=charmed&lt;br /&gt;
 		mode=append&lt;br /&gt;
 	[/store_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	[if]&lt;br /&gt;
 		[variable]&lt;br /&gt;
 			name=charmer.variables.charm_has_worked&lt;br /&gt;
 			equals=no&lt;br /&gt;
 		[/variable]&lt;br /&gt;
 		[then]&lt;br /&gt;
 			[set_variable]&lt;br /&gt;
 				name=charmer.side&lt;br /&gt;
 				value=$charmed.side&lt;br /&gt;
 			[/set_variable]&lt;br /&gt;
 		[/then]&lt;br /&gt;
 		[else]&lt;br /&gt;
 			[set_variable]&lt;br /&gt;
 				name=charmed.side&lt;br /&gt;
 				value=$charmer.side&lt;br /&gt;
 			[/set_variable]&lt;br /&gt;
 		[/else]&lt;br /&gt;
 	[/if]&lt;br /&gt;
 &lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=charmer&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=charmed&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	&lt;br /&gt;
 	{CLEAR_VARIABLE charmer}&lt;br /&gt;
 	{CLEAR_VARIABLE charmed}&lt;br /&gt;
 	&lt;br /&gt;
 [/event]&lt;br /&gt;
 &lt;br /&gt;
 [+abilities]&lt;br /&gt;
 &lt;br /&gt;
 #enddef&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #define WEAPON_SPECIAL_CHARM&lt;br /&gt;
 # dummy weapon special used to describe the effect to the user&lt;br /&gt;
 &lt;br /&gt;
 [damage]&lt;br /&gt;
 	id=weapon_charm&lt;br /&gt;
 	name= _ &amp;quot;charm&amp;quot;&lt;br /&gt;
 	name_inactive= _ &amp;quot;charm&amp;quot;&lt;br /&gt;
 	description= _ &amp;quot;Charm : &lt;br /&gt;
 Turns a living level 1 or level 0 unit to your side. Beware  if all of your attacks miss, the charm user turns to the defender side, even if it is your leader. You can not charm an ennemy leader or a non-living creature.&amp;quot; &lt;br /&gt;
 	description_inactive= _ &amp;quot;Charm : &lt;br /&gt;
 Turns a living level 1 or level 0 unit to your side. Beware  if all of your attacks miss, the charm user turns to the defender side, even if it is your leader. You can not charm an ennemy leader or a non-living creature.&amp;quot; &lt;br /&gt;
 	apply_to=opponent&lt;br /&gt;
 [/damage]&lt;br /&gt;
 &lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
== Works ==&lt;br /&gt;
&lt;br /&gt;
Unit with ability ''works'' will produce 1 gold per turn.&lt;br /&gt;
&lt;br /&gt;
Put this macro into you code before the last piece of code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define ABILITY_WORKS&lt;br /&gt;
     [leadership]&lt;br /&gt;
          value=0&lt;br /&gt;
          id=peasant_works&lt;br /&gt;
          cumulative=no&lt;br /&gt;
          name=&amp;quot;works&amp;quot;&lt;br /&gt;
          description= _ &amp;quot;Works:&lt;br /&gt;
This unit produces 1 gold per turn.&amp;quot;&lt;br /&gt;
    [/leadership]&lt;br /&gt;
 #enddef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put this event into your code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[event]&lt;br /&gt;
	name=side turn&lt;br /&gt;
	first_time_only=no&lt;br /&gt;
	[store_unit]&lt;br /&gt;
		[filter]&lt;br /&gt;
	            #your filter here... for example type=Peasant&lt;br /&gt;
		[/filter]&lt;br /&gt;
		variable=worker&lt;br /&gt;
		kill=no&lt;br /&gt;
	[/store_unit]&lt;br /&gt;
&lt;br /&gt;
		{FOREACH worker i}&lt;br /&gt;
	&lt;br /&gt;
			 [gold]&lt;br /&gt;
                            side=$side_number &lt;br /&gt;
                            amount=1&lt;br /&gt;
                         [/gold] &lt;br /&gt;
			[unstore_unit]&lt;br /&gt;
				variable=worker[$i]&lt;br /&gt;
				text=&amp;quot;1&amp;quot;&lt;br /&gt;
			        red,green,blue=255,255,0 &lt;br /&gt;
			[/unstore_unit]&lt;br /&gt;
				&lt;br /&gt;
		{NEXT i}&lt;br /&gt;
	&lt;br /&gt;
	{CLEAR_VARIABLE worker}&lt;br /&gt;
 [/event]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the unit the ability like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 [object]&lt;br /&gt;
     silent=yes&lt;br /&gt;
     [effect]&lt;br /&gt;
	apply_to=new_ability&lt;br /&gt;
           [abilities]&lt;br /&gt;
             {ABILITY_WORKS}&lt;br /&gt;
           [/abilities]&lt;br /&gt;
     [/effect]&lt;br /&gt;
 [/object]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mind Flay  ==&lt;br /&gt;
&lt;br /&gt;
The weapon special gives an attacker 1 point of exp taken from a defender for each hit. This will violate minimum experience (i.e. defender can go below 0). &lt;br /&gt;
&lt;br /&gt;
Give this special to the attack(s) you want it to have. &lt;br /&gt;
 #define WEAPON_SPECIAL_PICKPOCKET&lt;br /&gt;
    [damage]&lt;br /&gt;
        id=mind_flay&lt;br /&gt;
        name=&amp;quot;Mind Flay&amp;quot;&lt;br /&gt;
        description=&amp;quot;When used offensively, each hit of the mind flay attack takes 1 point of experience from the defender and gives it to the attacker.&amp;quot; &lt;br /&gt;
        multiply=1&lt;br /&gt;
    [/damage]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
Include these events into your scenario.&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon=mind flay&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	{VARIABLE hit_number 0}&lt;br /&gt;
 [/event]&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attacker_hits&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon=mind flay&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	{VARIABLE_OP hit_number add 1}&lt;br /&gt;
 [/event]&lt;br /&gt;
 [event]&lt;br /&gt;
 	name=attack_end&lt;br /&gt;
 	first_time_only=no&lt;br /&gt;
 	[special_filter]&lt;br /&gt;
 		weapon=mind flay&lt;br /&gt;
 	[/special_filter]&lt;br /&gt;
 	{VARIABLE_OP second_unit.experience add -$hit_number}&lt;br /&gt;
 	{VARIABLE_OP unit.experience add $hit_number}&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=unit&lt;br /&gt;
 		find_vacant=no&lt;br /&gt;
 		text=$hit_number&lt;br /&gt;
 		blue=255&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	[unstore_unit]&lt;br /&gt;
 		variable=second_unit&lt;br /&gt;
 		find_vacant=no&lt;br /&gt;
 	[/unstore_unit]&lt;br /&gt;
 	{CLEAR_VARIABLE hit_number}&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Note: In dev version substitute &amp;quot;name=&amp;quot; instead of &amp;quot;weapon=&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Initiative  ==&lt;br /&gt;
&lt;br /&gt;
Initiative is an aura ability. Much like Leadership, it effects adjacent allies but not the unit itself.&lt;br /&gt;
&lt;br /&gt;
 #define AURA_INITIATIVE TYPE&lt;br /&gt;
 [dummy]&lt;br /&gt;
 	id=initiative&lt;br /&gt;
 	name= _ &amp;quot;initiative&amp;quot;&lt;br /&gt;
 	description= _ &amp;quot;Initiative:&lt;br /&gt;
 Adjacent allies are granted Firststrike with all weapons.&amp;quot;&lt;br /&gt;
 [/dummy]&lt;br /&gt;
 [/abilities]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter]&lt;br /&gt;
 			[filter_adjacent]&lt;br /&gt;
 				type={TYPE}&lt;br /&gt;
 				is_enemy=no&lt;br /&gt;
 			[/filter_adjacent]&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH unit.attack i}&lt;br /&gt;
 			{VARIABLE unit.attack[$i].specials.firststrike.id &amp;quot;firststrike&amp;quot;}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter_second]&lt;br /&gt;
 			[filter_adjacent]&lt;br /&gt;
 				type={TYPE}&lt;br /&gt;
 				is_enemy=no&lt;br /&gt;
 			[/filter_adjacent]&lt;br /&gt;
 		[/filter_second]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH second_unit.attack i}&lt;br /&gt;
 			{VARIABLE second_unit.attack[$i].specials.firststrike.id &amp;quot;firststrike&amp;quot;}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=second_unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack_end&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[attack]&lt;br /&gt;
 					[specials]&lt;br /&gt;
 						[firststrike]&lt;br /&gt;
 							id=firststrike&lt;br /&gt;
 						[/firststrike]&lt;br /&gt;
 					[/specials]&lt;br /&gt;
 				[/attack]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 		[/filter]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH unit.attack i}&lt;br /&gt;
 			{CLEAR_VARIABLE unit.attack[$i].specials.firststrike}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=attack_end&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 &lt;br /&gt;
 		[filter_second]&lt;br /&gt;
 			[wml_filter]&lt;br /&gt;
 				[attack]&lt;br /&gt;
 					[specials]&lt;br /&gt;
 						[firststrike]&lt;br /&gt;
 							id=firststrike&lt;br /&gt;
 						[/firststrike]&lt;br /&gt;
 					[/specials]&lt;br /&gt;
 				[/attack]&lt;br /&gt;
 			[/wml_filter]&lt;br /&gt;
 		[/filter_second]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH second_unit.attack i}&lt;br /&gt;
 			{CLEAR_VARIABLE second_unit.attack[$i].specials.firststrike}&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 		&lt;br /&gt;
 		[unstore_unit]&lt;br /&gt;
 			variable=second_unit&lt;br /&gt;
 		[/unstore_unit]&lt;br /&gt;
 	[/event]&lt;br /&gt;
 [+abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
A WML filter may be added instead of the type if you want some units of that type to not have the ability.&lt;br /&gt;
&lt;br /&gt;
== Blitz ==&lt;br /&gt;
&lt;br /&gt;
Blitz is an aura ability. Much like Leadership, it effects adjacent allies but not the unit itself.&lt;br /&gt;
&lt;br /&gt;
 #define AURA_BLITZ TYPE&lt;br /&gt;
 [dummy]&lt;br /&gt;
 	id=blitz	&lt;br /&gt;
 	name= _ &amp;quot;blitz&amp;quot;&lt;br /&gt;
 	description= _ &amp;quot;Blitz:&lt;br /&gt;
 Allies that start their turn adjacent to this unit are granted Skirmisher for that turn.&amp;quot;&lt;br /&gt;
 [/dummy]&lt;br /&gt;
 [/abilities]&lt;br /&gt;
 	[event]&lt;br /&gt;
 		name=side turn&lt;br /&gt;
 		first_time_only=no&lt;br /&gt;
 		&lt;br /&gt;
 		[store_unit]&lt;br /&gt;
 			[filter]&lt;br /&gt;
 				&lt;br /&gt;
 				[wml_filter]&lt;br /&gt;
 					blitzed=1&lt;br /&gt;
 				[/wml_filter]&lt;br /&gt;
 			[/filter]&lt;br /&gt;
 			variable=blitz_refresh&lt;br /&gt;
 		[/store_unit]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH blitz_refresh i}&lt;br /&gt;
 			{CLEAR_VARIABLE blitz_refresh[$i].abilities.skirmisher}&lt;br /&gt;
 			{VARIABLE blitz_refresh[$i].blitzed 0}&lt;br /&gt;
 			[unstore_unit]&lt;br /&gt;
 				variable=blitz_refresh[$i]&lt;br /&gt;
 			[/unstore_unit]&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 &lt;br /&gt;
 		[store_unit]&lt;br /&gt;
 			[filter]&lt;br /&gt;
 				side=$side_number&lt;br /&gt;
 				[filter_adjacent]&lt;br /&gt;
 					type={TYPE}&lt;br /&gt;
 					is_enemy=no&lt;br /&gt;
 				[/filter_adjacent]&lt;br /&gt;
 			[/filter]&lt;br /&gt;
 			variable=blitzed&lt;br /&gt;
 		[/store_unit]&lt;br /&gt;
 		&lt;br /&gt;
 		{FOREACH blitzed i}&lt;br /&gt;
 			[if]&lt;br /&gt;
 				[variable]&lt;br /&gt;
 					name=blitzed[$i].abilities.skirmisher.id&lt;br /&gt;
 					not_equals=&amp;quot;skirmisher&amp;quot;&lt;br /&gt;
 				[/variable]&lt;br /&gt;
 				[then]&lt;br /&gt;
 					{VARIABLE blitzed[$i].blitzed 1}&lt;br /&gt;
 					{VARIABLE blitzed[$i].abilities.skirmisher.id skirmisher}&lt;br /&gt;
 					{VARIABLE blitzed[$i].abilities.skirmisher.name &amp;quot;skirmisher&amp;quot;}&lt;br /&gt;
 					{VARIABLE blitzed[$i].abilities.skirmisher.description  &amp;quot;Skirmisher:&lt;br /&gt;
 This unit is skilled in moving past enemies quickly, and ignores all enemy Zones of Control.&amp;quot;}&lt;br /&gt;
 					[unstore_unit]&lt;br /&gt;
 						variable=blitzed[$i]&lt;br /&gt;
 					[/unstore_unit]&lt;br /&gt;
 				[/then]&lt;br /&gt;
 			[/if]&lt;br /&gt;
 		{NEXT i}&lt;br /&gt;
 	[/event]&lt;br /&gt;
 [+abilities]&lt;br /&gt;
 #enddef&lt;br /&gt;
&lt;br /&gt;
A WML filter may be added instead of the type if you want some units of that type to not have the ability.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[UsefulWMLFragments]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
[[Category: UsefulWMLFragments]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=27656</id>
		<title>EventWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=27656"/>
		<updated>2008-12-19T15:54:57Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: Does filter_attack simply filter for anything on the weapon now?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== The [event] tag ==&lt;br /&gt;
&lt;br /&gt;
This tag is a subtag of the [scenario], [unit] and [era] tags which is used to describe a set of actions which trigger at a certain point in a scenario. When used in a [scenario] tag (also includes [multiplayer], [tutorial] and [test]), the event only occurs in that scenario. When used in a [unit] type definition, the event will occur in all scenarios in which a unit of that type appears in. When used in an [era], the event will occur in any scenario which is played using that era.&lt;br /&gt;
&lt;br /&gt;
Keys and tags that describe when the event should trigger:&lt;br /&gt;
* '''name''': this is not like a normal 'name' key. It is a basic description of when the event will trigger. {{DevFeature}} '''name''' can accept a list of commas separated descriptions for which the event must be triggered. Example: '''name= attacker_misses, defender_misses'''. Note that unless you use ''first_time_only=no'', the event will fire only once, not once for each listed type.&lt;br /&gt;
* '''prestart''': the event is triggered before a scenario 'starts' -- before anything is shown on the screen at all. You can use this event to set up things like village ownership. For things displayed on-screen such as character dialog, use '''start'''.&lt;br /&gt;
* '''start''': this event triggers after the map is shown but before the scenario begins&lt;br /&gt;
* '''new turn''': this event triggers whenever the last player ends their turn. See also '''first_time_only=no'''. When the last player ends their turn, before any events of this type trigger, the value of the WML variable '''turn_number''' is set to the number of the turn that is beginning.&lt;br /&gt;
* '''side turn''': this event triggers when a side is about to start its turn. Before events of this type trigger, the value of the WML variable '''side_number''' is set to the number of the side of the player about to take their turn. This is before any healing takes place for that side, before calculating income, and before restoring unit movement and status.&lt;br /&gt;
* '''turn refresh''': this event triggers just before a side is taking control after healing, calculating income, and restoring unit movement and status.&lt;br /&gt;
* '''turn X''': (for X some number) this event triggers at the start of turn ''X''. ''X'' cannot be 1.&lt;br /&gt;
* '''time over''': this event triggers on turn ''turns''. (''turns'' is specified in [scenario])&lt;br /&gt;
* '''enemies defeated''': this event triggers when all units with '''canrecruit=yes''' (i.e. all leaders) not allied with side 1 are killed.&lt;br /&gt;
* '''victory''': in this scenario, any tag of the form '''[endlevel] result=victory [/endlevel]''' will be automatically preceded by all actions in this tag. It helps debugging if the victory event allows you to safely advance to any of the possible next maps after using the &amp;quot;:n&amp;quot; command. Scenarios where key units are picked up before the victory, or where some action chosen earlier determines which map to advance to, make it hard to quickly test scenarios in a campaign. (See also [endlevel], [[DirectActionsWML]])&lt;br /&gt;
* '''defeat''': in this scenario, any tag of the form '''[endlevel] result=defeat [/endlevel]''' will be automatically preceded by all actions in this tag. (See also [endlevel], [[DirectActionsWML]])&lt;br /&gt;
* '''ai turn''': is triggered just before the AI is invoked for a side. This is called after ''side turn'', and thus the WML variable '''side_number''' still holds the number of this side.&lt;br /&gt;
&lt;br /&gt;
Filters can be applied to the following event triggers (see [[FilterWML]]; see also below). The actions specified in the event tag will be executed only if the filter returns true. &lt;br /&gt;
These event triggers are all actions by units ('''moveto''', '''attack''') or things that happen to units ('''recruit''', '''advance'''). When one of these events is triggered, the position of the active unit (referred to as the '''primary unit''') is stored in the variables '''x1''' and '''y1''' and the position of any unit that primary unit does something to is stored in the variables '''x2''' and '''y2''' (this unit is referred to as the '''secondary unit''' below). '' These units are also automatically stored in the variables 'unit' and 'second_unit' as if they had been stored using the '''[store_unit]''' tag. see [[SingleUnitWML]]&lt;br /&gt;
&lt;br /&gt;
* '''moveto'''': triggers after the primary unit moves. Typically this is used when the primary unit gets to a particular location and a filter for the location of the primary unit is included; remember that this is the location that the primary unit lands on, not the location it started on or any location it travels on.&lt;br /&gt;
* '''sighted''': this event triggers when the primary unit becomes visible to the secondary unit in particular after not being visible to the secondary unit's side (so if the secondary unit's side doesn't have shroud or fog, the event never triggers). This happens both when the primary unit moves into view during its turn, and when the secondary unit moves to a location where it can see the primary unit. (This editor hasn't tested whether the event triggers multiple times if the primary unit moves into view of multiple units at once, or if not, which one gets chosen to be the secondary unit here.)&lt;br /&gt;
* '''attack''': this event triggers when the primary unit attacks the secondary_unit.&lt;br /&gt;
* '''attacker_hits''': this event triggers when the the primary unit (the attacker) hits the secondary unit (the defender). {{DevFeature}} A variable '''$damage_inflicted''' allow to check the number of hitpoints inflicted by the attacker.&lt;br /&gt;
* '''attacker_misses''': same as ''attacker_hits'', but is triggered when the attacker misses.&lt;br /&gt;
* '''defender_hits''': this event triggers when the primary unit (the attacker) is hit in retaliation by the secondary unit (the defender). {{DevFeature}} A variable '''$damage_inflicted''' allow to check the number of hitpoints inflicted by the defender.&lt;br /&gt;
* '''defender_misses''': same as ''defender_hits'', but is triggered when the defender misses.&lt;br /&gt;
* '''attack_end''': is similar to '''attack''', but is instead triggered after the fight, not before. Note that if either unit is killed during the fight, this event triggers before any '''die''' events.&lt;br /&gt;
* '''stone''': this event triggers when the primary unit is hit by an attack with the 'stones' ability (See ''stones'', [[AbilitiesWML]]) by the secondary unit (the unit with the 'stones' ability).&lt;br /&gt;
* '''last breath''': this event triggers when the primary unit is killed by the secondary unit, but before the death animation is triggered.&lt;br /&gt;
* '''die''': this event triggers when the primary unit is killed by the secondary unit.&lt;br /&gt;
* '''capture''': this event triggers when the primary unit captures a village. The village may have been previously neutral, or previously owned by another side; merely moving into your own villages does not constitute a capture.&lt;br /&gt;
* '''recruit''': this event triggers when the primary unit is recruited or recalled. (That is, when a unit is recruited or recalled, it will trigger this event and this event's filter will filter that unit.). {{DevFeature}} The '''recruit''' will no longer triggers on recalls.&lt;br /&gt;
* '''prerecruit''': this event triggers when the primary unit is recruited, but before it is displayed. {{DevFeature}} The '''prerecruit''' will no longer triggers on recalls.&lt;br /&gt;
* '''advance''': this event triggers just before the primary unit is going to advance to another unit.&lt;br /&gt;
* '''post_advance''': this event triggers just after the primary unit has advanced to another unit.&lt;br /&gt;
* '''select''': triggers when the primary unit is selected. ''Note: in networked multiplayer, these events are only executed by the client on which the event is triggered, leading to out of sync errors if you modify the game state in the event.''&lt;br /&gt;
* '''menu item X''': triggers when a WML menu item with id=X is selected. ''Note: if the menu item has a [command], this event may be executed before or after the command; there is no guarantee.'' &lt;br /&gt;
* {{DevFeature}} '''prerecall''': triggers when a unit is recalled, but before it is displayed. This event is not trigger when a unit is recruit.&lt;br /&gt;
* {{DevFeature}} '''recall''': triggers after a unit is recalled. This event is not trigger when a unit is recruit.&lt;br /&gt;
* {{DevFeature}} other events with a custom name may be invoked from [fire_event]&lt;br /&gt;
* {{DevFeature}} '''consider attack''': triggers before the attack dialog is displayed.&lt;br /&gt;
* {{DevFeature}} '''unconsider attack''': triggers when canceling out of the attack dialog.&lt;br /&gt;
&lt;br /&gt;
An '''[allow_undo]''' tag anywhere within a moveto event will cancel any lack of undo functionality the event would have caused. Note that undo functionality will only move the unit back to its former location; it will not other changes to the game caused by the event. Thus it is up to the scenario designer to use this tag correctly.&lt;br /&gt;
&lt;br /&gt;
The primary unit can be referred to as '''unit''' and the secondary unit can be referred to as '''second_unit''' in [message] tags using the speaker= key. For example:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
 name=die&lt;br /&gt;
   [message]&lt;br /&gt;
   speaker=second_unit&lt;br /&gt;
   message=&amp;quot;Hahaha, I finally killed you!&amp;quot;&lt;br /&gt;
   [/message]&lt;br /&gt;
 &lt;br /&gt;
   [message]&lt;br /&gt;
   speaker=unit&lt;br /&gt;
   message=&amp;quot;It's not over yet! I'll come back to haunt you!&amp;quot;&lt;br /&gt;
   [/message]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
These keys and tags are more complex ways to filter when an event should trigger:&lt;br /&gt;
* '''first_time_only''': whether the event should be removed from the scenario after it is triggered.  Default is '''yes'''.&lt;br /&gt;
* '''[filter]''': the event will only trigger if the primary unit matches this filter.&lt;br /&gt;
** [[StandardUnitFilter]]: selection criteria&lt;br /&gt;
* '''[filter_second]''': is like [filter], but for the secondary unit.&lt;br /&gt;
** [[StandardUnitFilter]]: selection criteria&lt;br /&gt;
* '''[special_filter]''' and '''[special_filter_second]''': can be used to set some additional filtering criteria for the primary unit and the secondary unit that are not generally available in a standard unit filter. Can be used in events ''attack'', ''attacker_hits'', ''attacker_misses'', ''defender_hits'', ''defender_misses'' and ''attack_end''. ({{DevFeature}} renamed to [filter_attack] and [filter_second_attack])&lt;br /&gt;
** '''weapon''': the name of the weapon used. ({{DevFeature}} renamed to '''name''')&lt;br /&gt;
** {{DevFeature}} '''range''': the ranged of the weapon used. &lt;br /&gt;
&lt;br /&gt;
=== Actions triggered by [event] ===&lt;br /&gt;
&lt;br /&gt;
After the trigger conditions have been met, all action tags within the [event] tag are executed in the order they are written in.&lt;br /&gt;
&lt;br /&gt;
There are 3 main types of actions:&lt;br /&gt;
* direct actions ([[DirectActionsWML]]) which have a direct effect on gameplay&lt;br /&gt;
* display actions ([[InterfaceActionsWML]]) which show something to the user&lt;br /&gt;
* internal actions ([[InternalActionsWML]]) which are used by WML internally&lt;br /&gt;
&lt;br /&gt;
Several actions use standard filters to find out which units&lt;br /&gt;
to execute the command on.  These are denoted by the phrases&lt;br /&gt;
&amp;quot;standard unit filter&amp;quot; and &amp;quot;standard location filter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Nested events ===&lt;br /&gt;
&lt;br /&gt;
There is 1 special type of action: event creation.  By placing an '''[event]''' tag inside another '''[event]''' tag, the nested event is created when the nested event is encountered (when executing the contents of the event).  For example, you could create a portal that opens on turn 10.  The outer event executes on turn 10, creating the nested moveto event, which executes when a player steps on a certain spot.  An equivalent way of doing this would be to a single moveto event with an '''[if]''' statement to check for turn number, but using nested '''[event]''' tags is a convenient shortcut to accomplish this task without resorting to '''[if]''' statements.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         # moving to 5,8 will trigger this event only on turn 10 and after&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Variable substitution for a nested event can happen either when the event is spawned, or when it is triggered. This is controlled with the key ''delayed_variable_substitution'' (default yes). Consider the following two examples:&lt;br /&gt;
&lt;br /&gt;
 # This makes the message display the turn on which the moveto happens,&lt;br /&gt;
 # because the variable substitution for the moveto event will be done&lt;br /&gt;
 # when the event triggers.&lt;br /&gt;
 &lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 2&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=yes&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;}&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 # This makes the message on moveto always display as &amp;quot;Turn 2&amp;quot;, because&lt;br /&gt;
 # the variable substitution is done when the moveto event is spawned,&lt;br /&gt;
 # not when it eventually triggers.&lt;br /&gt;
 &lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 2&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=no&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;}&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Another way to mark an individual variable to be substituted later (when the event is triggered) is to  write it as &amp;quot;$|var&amp;quot; instead of the normal &amp;quot;$var&amp;quot;. By combining this with delayed_variable_substitution=no you can have some variables in the nested event be substituted immediately when the event is spawned and some variables substituted when the event triggers.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[FilterWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=27655</id>
		<title>EventWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EventWML&amp;diff=27655"/>
		<updated>2008-12-19T15:43:45Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* The [event] tag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WML Tags}}&lt;br /&gt;
== The [event] tag ==&lt;br /&gt;
&lt;br /&gt;
This tag is a subtag of the [scenario], [unit] and [era] tags which is used to describe a set of actions which trigger at a certain point in a scenario. When used in a [scenario] tag (also includes [multiplayer], [tutorial] and [test]), the event only occurs in that scenario. When used in a [unit] type definition, the event will occur in all scenarios in which a unit of that type appears in. When used in an [era], the event will occur in any scenario which is played using that era.&lt;br /&gt;
&lt;br /&gt;
Keys and tags that describe when the event should trigger:&lt;br /&gt;
* '''name''': this is not like a normal 'name' key. It is a basic description of when the event will trigger. {{DevFeature}} '''name''' can accept a list of commas separated descriptions for which the event must be triggered. Example: '''name= attacker_misses, defender_misses'''. Note that unless you use ''first_time_only=no'', the event will fire only once, not once for each listed type.&lt;br /&gt;
* '''prestart''': the event is triggered before a scenario 'starts' -- before anything is shown on the screen at all. You can use this event to set up things like village ownership. For things displayed on-screen such as character dialog, use '''start'''.&lt;br /&gt;
* '''start''': this event triggers after the map is shown but before the scenario begins&lt;br /&gt;
* '''new turn''': this event triggers whenever the last player ends their turn. See also '''first_time_only=no'''. When the last player ends their turn, before any events of this type trigger, the value of the WML variable '''turn_number''' is set to the number of the turn that is beginning.&lt;br /&gt;
* '''side turn''': this event triggers when a side is about to start its turn. Before events of this type trigger, the value of the WML variable '''side_number''' is set to the number of the side of the player about to take their turn. This is before any healing takes place for that side, before calculating income, and before restoring unit movement and status.&lt;br /&gt;
* '''turn refresh''': this event triggers just before a side is taking control after healing, calculating income, and restoring unit movement and status.&lt;br /&gt;
* '''turn X''': (for X some number) this event triggers at the start of turn ''X''. ''X'' cannot be 1.&lt;br /&gt;
* '''time over''': this event triggers on turn ''turns''. (''turns'' is specified in [scenario])&lt;br /&gt;
* '''enemies defeated''': this event triggers when all units with '''canrecruit=yes''' (i.e. all leaders) not allied with side 1 are killed.&lt;br /&gt;
* '''victory''': in this scenario, any tag of the form '''[endlevel] result=victory [/endlevel]''' will be automatically preceded by all actions in this tag. It helps debugging if the victory event allows you to safely advance to any of the possible next maps after using the &amp;quot;:n&amp;quot; command. Scenarios where key units are picked up before the victory, or where some action chosen earlier determines which map to advance to, make it hard to quickly test scenarios in a campaign. (See also [endlevel], [[DirectActionsWML]])&lt;br /&gt;
* '''defeat''': in this scenario, any tag of the form '''[endlevel] result=defeat [/endlevel]''' will be automatically preceded by all actions in this tag. (See also [endlevel], [[DirectActionsWML]])&lt;br /&gt;
* '''ai turn''': is triggered just before the AI is invoked for a side. This is called after ''side turn'', and thus the WML variable '''side_number''' still holds the number of this side.&lt;br /&gt;
&lt;br /&gt;
Filters can be applied to the following event triggers (see [[FilterWML]]; see also below). The actions specified in the event tag will be executed only if the filter returns true. &lt;br /&gt;
These event triggers are all actions by units ('''moveto''', '''attack''') or things that happen to units ('''recruit''', '''advance'''). When one of these events is triggered, the position of the active unit (referred to as the '''primary unit''') is stored in the variables '''x1''' and '''y1''' and the position of any unit that primary unit does something to is stored in the variables '''x2''' and '''y2''' (this unit is referred to as the '''secondary unit''' below). '' These units are also automatically stored in the variables 'unit' and 'second_unit' as if they had been stored using the '''[store_unit]''' tag. see [[SingleUnitWML]]&lt;br /&gt;
&lt;br /&gt;
* '''moveto'''': triggers after the primary unit moves. Typically this is used when the primary unit gets to a particular location and a filter for the location of the primary unit is included; remember that this is the location that the primary unit lands on, not the location it started on or any location it travels on.&lt;br /&gt;
* '''sighted''': this event triggers when the primary unit becomes visible to the secondary unit in particular after not being visible to the secondary unit's side (so if the secondary unit's side doesn't have shroud or fog, the event never triggers). This happens both when the primary unit moves into view during its turn, and when the secondary unit moves to a location where it can see the primary unit. (This editor hasn't tested whether the event triggers multiple times if the primary unit moves into view of multiple units at once, or if not, which one gets chosen to be the secondary unit here.)&lt;br /&gt;
* '''attack''': this event triggers when the primary unit attacks the secondary_unit.&lt;br /&gt;
* '''attacker_hits''': this event triggers when the the primary unit (the attacker) hits the secondary unit (the defender). {{DevFeature}} A variable '''$damage_inflicted''' allow to check the number of hitpoints inflicted by the attacker.&lt;br /&gt;
* '''attacker_misses''': same as ''attacker_hits'', but is triggered when the attacker misses.&lt;br /&gt;
* '''defender_hits''': this event triggers when the primary unit (the attacker) is hit in retaliation by the secondary unit (the defender). {{DevFeature}} A variable '''$damage_inflicted''' allow to check the number of hitpoints inflicted by the defender.&lt;br /&gt;
* '''defender_misses''': same as ''defender_hits'', but is triggered when the defender misses.&lt;br /&gt;
* '''attack_end''': is similar to '''attack''', but is instead triggered after the fight, not before. Note that if either unit is killed during the fight, this event triggers before any '''die''' events.&lt;br /&gt;
* '''stone''': this event triggers when the primary unit is hit by an attack with the 'stones' ability (See ''stones'', [[AbilitiesWML]]) by the secondary unit (the unit with the 'stones' ability).&lt;br /&gt;
* '''last breath''': this event triggers when the primary unit is killed by the secondary unit, but before the death animation is triggered.&lt;br /&gt;
* '''die''': this event triggers when the primary unit is killed by the secondary unit.&lt;br /&gt;
* '''capture''': this event triggers when the primary unit captures a village. The village may have been previously neutral, or previously owned by another side; merely moving into your own villages does not constitute a capture.&lt;br /&gt;
* '''recruit''': this event triggers when the primary unit is recruited or recalled. (That is, when a unit is recruited or recalled, it will trigger this event and this event's filter will filter that unit.). {{DevFeature}} The '''recruit''' will no longer triggers on recalls.&lt;br /&gt;
* '''prerecruit''': this event triggers when the primary unit is recruited, but before it is displayed. {{DevFeature}} The '''prerecruit''' will no longer triggers on recalls.&lt;br /&gt;
* '''advance''': this event triggers just before the primary unit is going to advance to another unit.&lt;br /&gt;
* '''post_advance''': this event triggers just after the primary unit has advanced to another unit.&lt;br /&gt;
* '''select''': triggers when the primary unit is selected. ''Note: in networked multiplayer, these events are only executed by the client on which the event is triggered, leading to out of sync errors if you modify the game state in the event.''&lt;br /&gt;
* '''menu item X''': triggers when a WML menu item with id=X is selected. ''Note: if the menu item has a [command], this event may be executed before or after the command; there is no guarantee.'' &lt;br /&gt;
* {{DevFeature}} '''prerecall''': triggers when a unit is recalled, but before it is displayed. This event is not trigger when a unit is recruit.&lt;br /&gt;
* {{DevFeature}} '''recall''': triggers after a unit is recalled. This event is not trigger when a unit is recruit.&lt;br /&gt;
* {{DevFeature}} other events with a custom name may be invoked from [fire_event]&lt;br /&gt;
* {{DevFeature}} '''consider attack''': triggers before the attack dialog is displayed.&lt;br /&gt;
* {{DevFeature}} '''unconsider attack''': triggers when canceling out of the attack dialog.&lt;br /&gt;
&lt;br /&gt;
An '''[allow_undo]''' tag anywhere within a moveto event will cancel any lack of undo functionality the event would have caused. Note that undo functionality will only move the unit back to its former location; it will not other changes to the game caused by the event. Thus it is up to the scenario designer to use this tag correctly.&lt;br /&gt;
&lt;br /&gt;
The primary unit can be referred to as '''unit''' and the secondary unit can be referred to as '''second_unit''' in [message] tags using the speaker= key. For example:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
 name=die&lt;br /&gt;
   [message]&lt;br /&gt;
   speaker=second_unit&lt;br /&gt;
   message=&amp;quot;Hahaha, I finally killed you!&amp;quot;&lt;br /&gt;
   [/message]&lt;br /&gt;
 &lt;br /&gt;
   [message]&lt;br /&gt;
   speaker=unit&lt;br /&gt;
   message=&amp;quot;It's not over yet! I'll come back to haunt you!&amp;quot;&lt;br /&gt;
   [/message]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
These keys and tags are more complex ways to filter when an event should trigger:&lt;br /&gt;
* '''first_time_only''': whether the event should be removed from the scenario after it is triggered.  Default is '''yes'''.&lt;br /&gt;
* '''[filter]''': the event will only trigger if the primary unit matches this filter.&lt;br /&gt;
** [[StandardUnitFilter]]: selection criteria&lt;br /&gt;
* '''[filter_second]''': is like [filter], but for the secondary unit.&lt;br /&gt;
** [[StandardUnitFilter]]: selection criteria&lt;br /&gt;
* '''[special_filter]''' and '''[special_filter_second]''': can be used to set some additional filtering criteria for the primary unit and the secondary unit that are not generally available in a standard unit filter. Can be used in events ''attack'', ''attacker_hits'', ''attacker_misses'', ''defender_hits'', ''defender_misses'' and ''attack_end''. ({{DevFeature}} renamed to [filter_attack] and [filter_second_attack])&lt;br /&gt;
** '''weapon''': the name of the weapon used. ({{DevFeature}} renamed to '''name''')&lt;br /&gt;
&lt;br /&gt;
=== Actions triggered by [event] ===&lt;br /&gt;
&lt;br /&gt;
After the trigger conditions have been met, all action tags within the [event] tag are executed in the order they are written in.&lt;br /&gt;
&lt;br /&gt;
There are 3 main types of actions:&lt;br /&gt;
* direct actions ([[DirectActionsWML]]) which have a direct effect on gameplay&lt;br /&gt;
* display actions ([[InterfaceActionsWML]]) which show something to the user&lt;br /&gt;
* internal actions ([[InternalActionsWML]]) which are used by WML internally&lt;br /&gt;
&lt;br /&gt;
Several actions use standard filters to find out which units&lt;br /&gt;
to execute the command on.  These are denoted by the phrases&lt;br /&gt;
&amp;quot;standard unit filter&amp;quot; and &amp;quot;standard location filter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Nested events ===&lt;br /&gt;
&lt;br /&gt;
There is 1 special type of action: event creation.  By placing an '''[event]''' tag inside another '''[event]''' tag, the nested event is created when the nested event is encountered (when executing the contents of the event).  For example, you could create a portal that opens on turn 10.  The outer event executes on turn 10, creating the nested moveto event, which executes when a player steps on a certain spot.  An equivalent way of doing this would be to a single moveto event with an '''[if]''' statement to check for turn number, but using nested '''[event]''' tags is a convenient shortcut to accomplish this task without resorting to '''[if]''' statements.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 10&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
 &lt;br /&gt;
         [filter]&lt;br /&gt;
             x,y=5,8&lt;br /&gt;
         [/filter]&lt;br /&gt;
 &lt;br /&gt;
         # moving to 5,8 will trigger this event only on turn 10 and after&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Variable substitution for a nested event can happen either when the event is spawned, or when it is triggered. This is controlled with the key ''delayed_variable_substitution'' (default yes). Consider the following two examples:&lt;br /&gt;
&lt;br /&gt;
 # This makes the message display the turn on which the moveto happens,&lt;br /&gt;
 # because the variable substitution for the moveto event will be done&lt;br /&gt;
 # when the event triggers.&lt;br /&gt;
 &lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 2&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=yes&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;}&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
 # This makes the message on moveto always display as &amp;quot;Turn 2&amp;quot;, because&lt;br /&gt;
 # the variable substitution is done when the moveto event is spawned,&lt;br /&gt;
 # not when it eventually triggers.&lt;br /&gt;
 &lt;br /&gt;
 [event]&lt;br /&gt;
     name=turn 2&lt;br /&gt;
 &lt;br /&gt;
     [event]&lt;br /&gt;
         name=moveto&lt;br /&gt;
         delayed_variable_substitution=no&lt;br /&gt;
 &lt;br /&gt;
         {DEBUG_MSG &amp;quot;Turn $turn_number&amp;quot;}&lt;br /&gt;
     [/event]&lt;br /&gt;
 [/event]&lt;br /&gt;
&lt;br /&gt;
Another way to mark an individual variable to be substituted later (when the event is triggered) is to  write it as &amp;quot;$|var&amp;quot; instead of the normal &amp;quot;$var&amp;quot;. By combining this with delayed_variable_substitution=no you can have some variables in the nested event be substituted immediately when the event is spawned and some variables substituted when the event triggers.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[DirectActionsWML]]&lt;br /&gt;
* [[InternalActionsWML]]&lt;br /&gt;
* [[InterfaceActionsWML]]&lt;br /&gt;
* [[FilterWML]]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: WML Reference]]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=27220</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=27220"/>
		<updated>2008-10-27T19:18:48Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* Marhault's Dominion (none released, Wesnoth 1.5.5) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Many things have gotten a lot more sophisticated. There are many new functions included in the era. Unfortunately, Wesband has a problem when played over network. The map isn't created correctly for any other machine but the host one. However, this isn't a problem if you're playing a hotseat game, which is why this hasn't come up just yet. I haven't been able to figure out what the problem is, no one has responded to any of my requests for help and Dov seems to be too busy to help. &lt;br /&gt;
&lt;br /&gt;
The plan is to keep on working on Modular RPG in ways that are still compatible with Wesband, but in another scenario. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable. I hope to have a release in the next couple weeks.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=27219</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=27219"/>
		<updated>2008-10-27T18:22:24Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Many things have gotten a lot more sophisticated. There are many new functions included in the era. Unfortunately, Wesband has a problem when played over network. The map isn't created correctly for any other machine but the host one. However, this isn't a problem if you're playing a hotseat game, which is why this hasn't come up just yet. I haven't been able to figure out what the problem is, no one has responded to any of my requests for help and Dov seems to be too busy to help. &lt;br /&gt;
&lt;br /&gt;
The plan is to keep on working on Modular RPG in ways that are still compatible with Wesband, but in another scenario. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.5.5) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the human level 1 units. Any advancement to a unit unlocks the recruitment of that unit up to level 2 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on four sides by Elves, Undead, Bandits and Orcs who collectively send units at your castle. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
In helping the balance between campaign and scenario, I've added a &amp;quot;retire&amp;quot; option for units as a way to take units from the field and put them into the recall list. Once retired, units can be recalled after 6 turns. This should help when the player gets too many units to keep with upkeep.&lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit according to their unique abilities. Once completed, they give that unit a special treasure or ability which makes the unit a hero that is above and beyond other level 3 units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop crashed about a year ago. I've been able to rebuild most of what I had before plus I reduced the map nearly half the size. Sending a high-level unit on a quest only to have it gone for 20 turns was simply unacceptable.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=26647</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=26647"/>
		<updated>2008-09-09T13:00:06Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Many things have gotten a lot more sophisticated. There are many new functions included in the era. Unfortunately, Wesband has a problem when played over network. The map isn't created correctly for any other machine but the host one. However, this isn't a problem if you're playing a hotseat game, which is why this hasn't come up just yet. I haven't been able to figure out what the problem is, no one has responded to any of my requests for help and Dov seems to be too busy to help. &lt;br /&gt;
&lt;br /&gt;
The plan is to keep on working on Modular RPG in ways that are still compatible with Wesband, but in another scenario. &lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly-added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project. However, the birth of the Additional Level 0s project puts me a few steps closer to doing this.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=26405</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=26405"/>
		<updated>2008-08-12T15:15:33Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Things are really rolling. Many things have gotten a lot more sophisticated. Weapons now show base and adjusted damage/attack values. Armor similarly shows you a lot more than it once did. There is a shop functionality, plus you can pick up and drop items that aren't equipped. The future holds a lot of balancing plus getting spells and other items to work.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Level 0 units for all mainline units ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
We have units like Peasant, Bowman and the newly added Ruffian in mainline, but what is a Mage before he really has the experience to become a full level 1 unit? I made some level 0 units for Marhault's Dominion and, when that was lost, I wanted to take that vision further. I decided to make those units in order to flesh out towns in RPG scenarios. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
My art isn't great, but it works. The mainline human units are completed. Most of the elfish units are done and the goblin units are done. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Progress is halted mainly because of work on Wesband+MODRPG. It will continue as a fun break from the heavy coding of my other projects. &lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=19484 Additional level 0s general thread]&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?f=23&amp;amp;t=19510 Additional level 0s art thread]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project. However, the birth of the Additional Level 0s project puts me a few steps closer to doing this.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=26404</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=26404"/>
		<updated>2008-08-12T15:01:54Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* Wesband + Modular RPG Era (No working version yet released v0.1.14, Wesnoth 1.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (v2, Wesnoth 1.5.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Things are really rolling. Many things have gotten a lot more sophisticated. Weapons now show base and adjusted damage/attack values. Armor similarly shows you a lot more than it once did. There is a shop functionality, plus you can pick up and drop items that aren't equipped. The future holds a lot of balancing plus getting spells and other items to work.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25727</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25727"/>
		<updated>2008-05-19T17:28:08Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* Abilities Era (v0.3.1a, Wesnoth 1.3.11) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (No working version yet released v0.1.14, Wesnoth 1.5.0) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Unfortunately, Wesnoth release 1.5.0 has a [http://gna.org/bugs/?11424 bug] that makes it impossible for Modular RPG Era to work properly. I'm working on expanding the era, but until the bug is fixed, I can't test it out with Wesband. I'm also locked out of all of 1.5.0's nice new features.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?f=19&amp;amp;t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25725</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25725"/>
		<updated>2008-05-19T12:46:57Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems but am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (No working version yet released v0.1.14, Wesnoth 1.5.0) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Unfortunately, Wesnoth release 1.5.0 has a [http://gna.org/bugs/?11424 bug] that makes it impossible for Modular RPG Era to work properly. I'm working on expanding the era, but until the bug is fixed, I can't test it out with Wesband. I'm also locked out of all of 1.5.0's nice new features.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25724</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25724"/>
		<updated>2008-05-19T12:45:27Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wesband + Modular RPG Era (No working version yet released v0.1.14, Wesnoth 1.5.0) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Wesband is a Wesnoth version of a roguelike game (specifically Zangband) being developed by Dovolente. Dov has made an excellent dungeon generator that connects to an overworld and has chosen my Modular RPG Era as what he wants to connect with it. This is great news for me, who wants to develop the era but can't be bothered to create a campaign to showcase its features. &lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Dov and I are discussing the future of development, while I'm working make the era compatible with the campaign. The plan is to start with humans and make a system that expands on skills, adds more spells and items (including potions, scrolls and wands). Other roguelike features (food, IDing of items, cursed items, etc.) will be considered as development continues. &lt;br /&gt;
&lt;br /&gt;
Note that the modular nature of the era will be preserved. While it will be compatible with Wesband, it will also have the option to function just like it did before.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Unfortunately, Wesnoth release 1.5.0 has a [http://gna.org/bugs/?11424 bug] that makes it impossible for Modular RPG Era to work properly. I'm working on expanding the era, but until the bug is fixed, I can't test it out with Wesband. I'm also locked out of all of 1.5.0's nice new features.&lt;br /&gt;
&lt;br /&gt;
[http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=21234 Wesband]&lt;br /&gt;
&lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Modular RPG Era (v0.1.11, Wesnoth 1.4.1) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human and troll units are emulated. Units can gain skill points, gain levels and buy from shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've come a long way with the era but there is still plenty left to do.  Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25723</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25723"/>
		<updated>2008-05-19T12:17:24Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* Marhault's Dominion (none released, Wesnoth 1.3.9) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I lost all of Marhault's Dominion when my laptop succumbed to a Chinese virus of some sort. This is half good, because I wanted to rewrite a lot of it, it's also bad because I'm left with nothing. While the code needed is rather simple, the work is very time-consuming. If I ever get this done, it'll be after I'm done with my RPG project.&lt;br /&gt;
&lt;br /&gt;
== Modular MP RPG Era (v0.1.4, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human units are emulated except for mounted units, the Conceals ability (which may never go in) and Lichdom (which will probably need consideration). Units can gain skill points, gain levels and buy from shops. There is plenty of un-KISS-ness to it all, but I think everything should be fairly intuitive.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've had a little trouble with overall bulkiness of the code, but with the help of the WML Workshop visitors, like Zookeeper, I think it should be small enough to be playable. &lt;br /&gt;
&lt;br /&gt;
I should make a campaign that showcases this era's capabilities soon. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular MP RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25722</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=25722"/>
		<updated>2008-05-19T12:13:11Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* The Endless War (v0.5.1, Wesnoth 1.3.2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War] &lt;br /&gt;
&lt;br /&gt;
''New'':&lt;br /&gt;
Fortunately, this has inspired several spin-off projects. &lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=19046&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=8&amp;amp;t=16481&lt;br /&gt;
http://forum.wesnoth.org/viewtopic.php?f=15&amp;amp;t=20473&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Marhault's Dominion is nearly completed. I paused working on it until I could figure out how to do some things with WML to complete the quests. Now that I learned WML much better during the Modular MP RPG Era, I have all the tools I need to finish this. I also need to revamp the income system and add an end-game set of events. The huge map also isn't working as well as I wanted, so I'm shrinking it by a lot. The lesson learned here is for designers to never make maps larger than what is really needed.&lt;br /&gt;
&lt;br /&gt;
== Modular MP RPG Era (v0.1.4, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human units are emulated except for mounted units, the Conceals ability (which may never go in) and Lichdom (which will probably need consideration). Units can gain skill points, gain levels and buy from shops. There is plenty of un-KISS-ness to it all, but I think everything should be fairly intuitive.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've had a little trouble with overall bulkiness of the code, but with the help of the WML Workshop visitors, like Zookeeper, I think it should be small enough to be playable. &lt;br /&gt;
&lt;br /&gt;
I should make a campaign that showcases this era's capabilities soon. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular MP RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=19864</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=19864"/>
		<updated>2007-12-10T17:14:11Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a regular campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.3.1a, Wesnoth 1.3.11) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability every unit. The level 1 units each have either an ability or weapon special that effects what it can do. The level 2 units have some sort of leadership or aura effect that alter adjacent units.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
The era is complete except for the small details. Play-testing and bug-fixing will come slowly as I'm more focused on other projects. Eventually new art would be nice too. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.2) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War]&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.9) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. Also, the aim is to blur the line between campaign and scenario.&lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Marhault's Dominion is nearly completed. I paused working on it until I could figure out how to do some things with WML to complete the quests. Now that I learned WML much better during the Modular MP RPG Era, I have all the tools I need to finish this. I also need to revamp the income system and add an end-game set of events. The huge map also isn't working as well as I wanted, so I'm shrinking it by a lot. The lesson learned here is for designers to never make maps larger than what is really needed.&lt;br /&gt;
&lt;br /&gt;
== Modular MP RPG Era (v0.1.4, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want, without the restrictions of classes. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
Most mainline human units are emulated except for mounted units, the Conceals ability (which may never go in) and Lichdom (which will probably need consideration). Units can gain skill points, gain levels and buy from shops. There is plenty of un-KISS-ness to it all, but I think everything should be fairly intuitive.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I've had a little trouble with overall bulkiness of the code, but with the help of the WML Workshop visitors, like Zookeeper, I think it should be small enough to be playable. &lt;br /&gt;
&lt;br /&gt;
I should make a campaign that showcases this era's capabilities soon. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=17661 Modular MP RPG Era]&lt;br /&gt;
&lt;br /&gt;
== Living Villages (v1a, Wesnoth 1.3.10) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
This is actually a side afterthought of some code that is going to go into the core of the Modular MP RPG Era. The idea is making organic scenarios where the environment interacts with itself as well as the player.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While it works and should be fun, there's not much balance to it all. The villages belong to a side on a MP map where they can expand or be destroyed depending on terrain and player actions. The villages can't be captured, but rather they are effected when a unit rests there. Income is gained by whatever side taking the gold from the village.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm not planning to do anything else with it. It took just a little bit of work to do beyond what I already had and I'm happy with it as it is. Find the latest version on the campaign server or here: [http://www.wesnoth.org/forum/viewtopic.php?t=18567 Living Villages]&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Template:Observer:On_this_day&amp;diff=18648</id>
		<title>Template:Observer:On this day</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Template:Observer:On_this_day&amp;diff=18648"/>
		<updated>2007-10-11T15:11:33Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neoriceisgood has fans! In the top four google searches leading to wesnoth, neoriceisgood has taken 5th place! (first 4 takes by keyword &amp;quot;wesnoth&amp;quot;). Read it [http://www.wesnoth.org/forum/viewtopic.php?t=17758 here]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alert all Wesnoth RPG fans! Now, coming to you from the creators of Wesnoth, is [http://www.silvertreerpg.org Silver Tree]! Version 0.2 has just been released.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17449</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17449"/>
		<updated>2007-08-27T15:23:00Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like trying to make elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.1.8, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability for most of the level 1 units. I am most proud of the Raid weapon special, which for every offensive hit, steals 2 exp. It's a really nasty ability.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I got stuck on the Loner ability, one that increases a unit's attacks by 100% if they are not adjacent to an ally, because of lack of WML support in Wesnoth v1.3.2-ish. WML has since changed and I think it supports this fully. Unfortunately, I've lost momentum with this project. It would also probably require a lot of re-writing of unit files. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War]&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. I also decided this would be a good time to revive my concept of making a single scenario as interesting as a whole campaign. &lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Marhault's Dominion is nearly completed. I paused working on it until I could figure out how to do some things with WML to complete the quests. I also need to revamp the income system and add an end-game set of events. &lt;br /&gt;
&lt;br /&gt;
== MP RPG Framework (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While the coding isn't complete, I've created a character stat system that includes attributes, weapon skills and shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm currently stuck on the inventory system. As soon as I can figure a work-around for some WML issues, I hope to add a character display option, a way to add abilities and weapon specials to characters and to work on the armor and evade system. Hopefully, it won't be too long before I make a thread about all this, I can have others test it and they can give me some feedback.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17408</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17408"/>
		<updated>2007-08-24T21:18:31Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like making elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.1.8, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability for most of the level 1 units. I am most proud of the Raid weapon special, which for every offensive hit, steals 2 exp. It's a really nasty ability.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I got stuck on the Loner ability, one that increases a unit's attacks by 100% if they are not adjacent to an ally, because of lack of WML support in Wesnoth v1.3.2-ish. WML has since changed and I think it supports this fully. Unfortunately, I've lost momentum with this project. It would also probably require a lot of re-writing of unit files. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
''Result'': I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War]&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. I also decided this would be a good time to revive my concept of making a single scenario as interesting as a whole campaign. &lt;br /&gt;
&lt;br /&gt;
''Result'': &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Marhault's Dominion is nearly completed. I paused working on it until I could figure out how to do some things with WML to complete the quests. I also need to revamp the income system and add an end-game set of events. &lt;br /&gt;
&lt;br /&gt;
== MP RPG Framework (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
While the coding isn't complete, I've created a character stat system that includes attributes, weapon skills and shops. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
I'm currently stuck on the inventory system. As soon as I can figure a work-around for some WML issues, I hope to add a character display option, a way to add abilities and weapon specials to characters and to work on the armor and evade system. Hopefully, it won't be too long before I make a thread about all this, I can have others test it and they can give me some feedback.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17407</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17407"/>
		<updated>2007-08-24T21:17:39Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: /* Despair and Decay (v0.3.1c, Wesnoth 1.2.x) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like making elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Objectives'':&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
''Result'':&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
''Today'':&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.1.8, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability for most of the level 1 units. I am most proud of the Raid weapon special, which for every offensive hit, steals 2 exp. It's a really nasty ability.&lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
I got stuck on the Loner ability, one that increases a unit's attacks by 100% if they are not adjacent to an ally, because of lack of WML support in Wesnoth v1.3.2-ish. WML has since changed and I think it supports this fully. Unfortunately, I've lost momentum with this project. It would also probably require a lot of re-writing of unit files. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
Result: I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War]&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. I also decided this would be a good time to revive my concept of making a single scenario as interesting as a whole campaign. &lt;br /&gt;
&lt;br /&gt;
Result: &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
Marhault's Dominion is nearly completed. I paused working on it until I could figure out how to do some things with WML to complete the quests. I also need to revamp the income system and add an end-game set of events. &lt;br /&gt;
&lt;br /&gt;
== MP RPG Framework (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
Objectives:&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
While the coding isn't complete, I've created a character stat system that includes attributes, weapon skills and shops. &lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
I'm currently stuck on the inventory system. As soon as I can figure a work-around for some WML issues, I hope to add a character display option, a way to add abilities and weapon specials to characters and to work on the armor and evade system. Hopefully, it won't be too long before I make a thread about all this, I can have others test it and they can give me some feedback.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17406</id>
		<title>User:Ken Oh</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Ken_Oh&amp;diff=17406"/>
		<updated>2007-08-24T21:16:16Z</updated>

		<summary type="html">&lt;p&gt;Ken Oh: creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What interests me in making Wesnoth add-ons is altering the gameplay so that it is mostly the same as normal, but adding one or two things which fundamentally changes the game. I like making elegant systems, but I am not fond of creating storylines/dialog/etc.&lt;br /&gt;
&lt;br /&gt;
== Despair and Decay (v0.3.1c, Wesnoth 1.2.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
My objectives for this campaign was to, firstly, make a campaign with Undead, an under-represented faction for campaigns. Secondly, I wanted to do something to make Walking Corpses much more usable and lastly I wanted to create large battles. I've always been one to simply make a huge random map FFA with AI and treat it as if it was a campaign. I thought if I could make large scenarios which have as many interesting parts to them as a few individual scenarios, then the player wouldn't get bored.&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
I came up with an idea to retrace the Undead's push through Wesnoth during and slightly before the events in Heir to the Throne. Your character starts as a risen dead who has no real idea of his life's history. You go to places that Konrad and company later take back, like Elensefar, and then options unfold where you can possibly meet with Konrad back at Weldyn, at the battle for Wesnoth (this isn't the best ending, since it doesn't really happen in HttT). &lt;br /&gt;
&lt;br /&gt;
Zookeeper was kind enough to write code for me that replicates any of your Walking Corpses. This make Walking Corpses useful, and often vital, to strategy. Also a hat tip to flava clown who did a lot of help things along.&lt;br /&gt;
&lt;br /&gt;
The large battles were loved by some, hated by others. My problem is when I was working on the campaign, I didn't know WML well enough to add a rich experience. &lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
Development is on hold. It's not that I have lost interest in the project. It's simply that there are so many more interesting things I've been working on and want to finish before I go back to coding as mundane of a project as a campaign. Even though only 4 scenarios remain, a lot of work needs to be done cleaning up some scenarios, making some more interesting and working on writing the storyline down. That is not to mention updating maps and WML for new versions. I regret abandoning the project and disappointing and losing an asset such as flava clown. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=10876&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=135 Despair and Decay]&lt;br /&gt;
&lt;br /&gt;
== Abilities Era (v0.1.8, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
To create a fun era in which every unit has an ability or weapon special that is not found anywhere else.&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
I have made 3 factions (Pirates, Bandits of units leveled 1 and 2 and, with the help of many others, created a unique ability for most of the level 1 units. I am most proud of the Raid weapon special, which for every offensive hit, steals 2 exp. It's a really nasty ability.&lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
I got stuck on the Loner ability, one that increases a unit's attacks by 100% if they are not adjacent to an ally, because of lack of WML support in Wesnoth v1.3.2-ish. WML has since changed and I think it supports this fully. Unfortunately, I've lost momentum with this project. It would also probably require a lot of re-writing of unit files. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=11999 Abilities Era]&lt;br /&gt;
&lt;br /&gt;
== The Endless War (v0.5.1, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
I noticed some people on the forum talking about what it might be like if players didn't lose dead units, but got to recall them back next scenario. I decided to combine this concept with another of mine that pits you against a consistent enemy and, if you win against them, you move to a harder scenario for you but, if you lose, you don't just get game over. Instead, both of you move back to a harder scenario for them but an easier one for you. Only after one side can win a consecutive times in a row will the game end. &lt;br /&gt;
&lt;br /&gt;
Result: I made this with one balanced scenario (a MP map) and a home map for each side, with plans to add a random map between the balanced and the home maps. I successfully allowed dead units to be recalled on both sides, but since the AI doesn't know how to recall, I had to do it manually. &lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
I ran into some bugs and eventually stopped working on the project out of frustration due to some bugs. I have since tried to start it up again, but between having problems with bugs and trying to update deprecated maps, I failed to complete the project. The latest version can be found here: [http://www.wesnoth.org/forum/viewtopic.php?t=15200 The Endless War]&lt;br /&gt;
&lt;br /&gt;
== Marhault's Dominion (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
Spencelack's [http://www.wesnoth.org/forum/viewtopic.php?t=17044 Ooze Mini-Campaign] got me thinking about making a survival scenario where you have to protect your castle from waves of sieges. I also decided this would be a good time to revive my concept of making a single scenario as interesting as a whole campaign. &lt;br /&gt;
&lt;br /&gt;
Result: &lt;br /&gt;
I made a huge map with a castle in the center where you can only recruit peasant units to start with. From there you can upgrade them to more advanced level 0 units which can then be advanced into any of the Loyalist (and some Bandit) level 1 units. Any advancement to a unit unlocked the recruitment of that unit, all except for level 3 units (you can eventually recruit Knights, but never Grand Knights). &lt;br /&gt;
&lt;br /&gt;
Your castle is surrounded on 4 sides by Elves, Undead, Bandits and Orcs. They have keeps and leaders and they constantly recruit to siege your castle. If you manage to kill a leader, it is then replaced by another one a few turns later, but at least you get a reprieve from that side's recruiting for a while. &lt;br /&gt;
&lt;br /&gt;
Also, later in the game, events are triggered that enable quests. These quests are mostly only able to be completed by a certain level 3 unit. Once completed, they give that unit a special treasure or ability which makes the unit unique and very powerful.&lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
Marhault's Dominion is nearly completed. I paused working on it until I could figure out how to do some things with WML to complete the quests. I also need to revamp the income system and add an end-game set of events. &lt;br /&gt;
&lt;br /&gt;
== MP RPG Framework (none released, Wesnoth 1.3.x) ==&lt;br /&gt;
Objectives:&lt;br /&gt;
To create an RPG system that closely resembles Wesnoth's mainline era, but allows flexibility for individual hero characters to advance as they want. This could be combined with existing MP RPG scenarios or altered to fit with its own random RPG scenarios.&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
While the coding isn't complete, I've created a character stat system that includes attributes, weapon skills and shops. &lt;br /&gt;
&lt;br /&gt;
Today:&lt;br /&gt;
I'm currently stuck on the inventory system. As soon as I can figure a work-around for some WML issues, I hope to add a character display option, a way to add abilities and weapon specials to characters and to work on the armor and evade system. Hopefully, it won't be too long before I make a thread about all this, I can have others test it and they can give me some feedback.&lt;/div&gt;</summary>
		<author><name>Ken Oh</name></author>
		
	</entry>
</feed>